如何在DocuSign签名请求邮件中附加文件?
解决DocuSign签名邮件附加PDF给签署方的问题
你当前用EnvelopeAttachments的方式确实行不通,因为这类附件默认是仅发送方可见的,签署方收不到也看不到。要实现给签署方的签名邮件附加PDF,得把这些文件作为**信封的文档(Document)**添加,而非信封级附件。
核心原因
EnvelopeAttachments是信封的内部附件,仅对发件人、账户管理员等内部角色可见,不会随签名邮件发送给签署方。要让签署方收到附件,必须将PDF作为正式文档加入信封,同时配置为不需要签名、仅用于查看。
修正后的代码示例
把原来的Attachment替换成Document,并添加到信封的文档列表(或复合模板中):
// 准备要附加的PDF文档 $attachmentDocuments = [ new Document([ 'document_id' => '2', // 注意要和现有文档的ID不重复 'name' => '附件1.pdf', 'file_extension' => 'pdf', // 不要加前缀点 'document_base64' => base64_encode($this->getPdf($document, $signers)), 'document_fields' => [ // 标记为附件,可选 new DocumentField(['name' => 'is_attachment', 'value' => 'true']) ] ]) ]; // 如果用复合模板,需要把文档加入composite_templates的documents数组 foreach ($composite_templates as $template) { // 合并现有文档和新附件文档 $existingDocs = $template->getDocuments() ?? []; $template->setDocuments(array_merge($existingDocs, $attachmentDocuments)); } $envelope_definition = new EnvelopeDefinition([ 'composite_templates' => $composite_templates, 'email_subject' => "Firmar $documentTypeSp", 'status' => "sent" // 移除原来的attachments和setEnvelopeAttachments调用 ]); return $envelope_definition;
额外配置说明
- 确保
document_id唯一:不能和信封里已有文档的ID重复 - 无需签名设置:如果这些PDF不需要签署,只要确保没有给它们添加签名标签(
signHereTabs等),签署方打开信封时只会看到文档,不会被要求签名 - 邮件显示:添加为文档后,DocuSign会自动将这些文件附加到签名请求邮件中,签署方可以直接下载
这样修改后,签署方就能收到包含这些PDF附件的签名邮件了。
内容的提问来源于stack exchange,提问作者fombo
相关产品推荐
相关产品推荐

