使用DocuSign C# SDK重发信封,签署人未收到自定义邮件内容
问题原因
当通过UpdateRecipients接口更新已有签署人(复用原RecipientId)并设置resendEnvelope=true时,DocuSign默认不会覆盖签署人已有的邮件通知配置,仅对新添加的收件人(如代码中用新GUID创建的CC)生效新的主题和正文。
解决方案
可以通过以下两种方式解决:
方式1:单独更新签署人邮件配置后重新发送
先更新签署人的邮件通知设置,再单独调用重新发送接口指定该签署人,确保新的主题和正文生效:
// 1. 获取原签署人信息并更新其邮件通知配置 var prevSigner = envelopesApi.ListRecipients(account_id, docusigncriteria.envelope_id).Signers[0]; Signer signer1 = new Signer { Email = docusigncriteria.signerEmail, Name = docusigncriteria.signerName, RecipientId = prevSigner.RecipientId, RoutingOrder = "1", ClientUserId = docusigncriteria.signerName, EmbeddedRecipientStartURL = "SIGN_AT_DOCUSIGN", EmailNotification = new RecipientEmailNotification { EmailSubject = "Custom email subject for signer 1", EmailBody = "Custom email body for signer 1" } }; Recipients signerUpdate = new Recipients { Signers = new List<Signer> { signer1 } }; envelopesApi.UpdateRecipients(account_id, docusigncriteria.envelope_id, signerUpdate, new EnvelopesApi.UpdateRecipientsOptions()); // 2. 单独给该签署人重新发送邮件 var resendSignerOptions = new EnvelopesApi.ResendEnvelopeOptions { RecipientId = prevSigner.RecipientId }; var signerEmailNotify = new EnvelopeEmailNotification { EmailSubject = "Custom email subject for signer 1", EmailBody = "Custom email body for signer 1" }; envelopesApi.ResendEnvelope(account_id, docusigncriteria.envelope_id, signerEmailNotify, resendSignerOptions); // 3. 处理CC收件人(原有逻辑不变) List<CarbonCopy> ccList = new List<CarbonCopy>(); for (int i = 0; i < docusigncriteria.ccEmails.Length; i++) { ccList.Add(new CarbonCopy { Email = docusigncriteria.ccEmails[i], Name = docusigncriteria.ccNames[i] ?? "To Whom it May Concern", RecipientId = Guid.NewGuid().ToString(), RoutingOrder = "1", DeliveryMethod = "email", EmailNotification = new RecipientEmailNotification { EmailSubject = "Custom email subject for signer 1", EmailBody = "Custom email body for signer 1" } }); } Recipients ccUpdate = new Recipients { CarbonCopies = ccList }; envelopesApi.UpdateRecipients(account_id, docusigncriteria.envelope_id, ccUpdate, new EnvelopesApi.UpdateRecipientsOptions() { resendEnvelope = "true" });
方式2:更新信封全局邮件配置后批量重发
如果所有收件人需要统一的新主题和正文,可直接更新信封的全局邮件设置,再重发整个信封:
// 更新信封全局邮件配置 Envelope envelopeUpdate = new Envelope { EmailSubject = "Unified custom email subject", EmailBlurb = "Unified custom email body" }; envelopesApi.UpdateEnvelope(account_id, docusigncriteria.envelope_id, envelopeUpdate); // 重发整个信封给所有收件人 var resendAllOptions = new EnvelopesApi.ResendEnvelopeOptions(); envelopesApi.ResendEnvelope(account_id, docusigncriteria.envelope_id, null, resendAllOptions);
关键说明
- 已有收件人的邮件通知配置不会被
UpdateRecipients的批量重发逻辑覆盖,需单独更新后再触发重发。 - 新添加的收件人(如代码中新建的CC)会直接使用配置的邮件内容,无需额外操作。
内容的提问来源于stack exchange,提问作者Richard Michels
相关产品推荐
相关产品推荐

