如何通过SSIS邮件任务或Task Factory邮件任务请求送达/已读回执
SSIS及Task Factory邮件任务设置送达/已读回执的实现方案
原生SSIS发送邮件任务
SSIS自带的原生发送邮件任务没有提供可视化配置项来设置回执请求,你可以改用「脚本任务」调用.NET的SMTP类实现,在发送邮件时添加对应的邮件头即可:
- 送达回执对应头字段:
Return-Receipt-To - 已读回执对应头字段:
Disposition-Notification-To
C#脚本任务的参考代码如下:
using System.Net; using System.Net.Mail; public void Main() { MailMessage mail = new MailMessage(); SmtpClient smtpClient = new SmtpClient("你的SMTP服务器地址"); // 基础邮件配置 mail.From = new MailAddress("发件人邮箱"); mail.To.Add("收件人邮箱"); mail.Subject = "邮件主题"; mail.Body = "邮件内容"; // 添加回执请求头 mail.Headers.Add("Return-Receipt-To", "发件人邮箱"); mail.Headers.Add("Disposition-Notification-To", "发件人邮箱"); // 配置SMTP认证(如果需要) smtpClient.Credentials = new NetworkCredential("发件人账号", "发件人密码"); smtpClient.Send(mail); Dts.TaskResult = (int)ScriptResults.Success; }
Task Factory 发送邮件任务
Task Factory的邮件任务原生支持回执配置,无需额外编码:
打开Task Factory发送邮件任务的配置界面,在「邮件选项」分类下,直接勾选请求送达回执、请求已读回执两个选项,保存配置后即可生效。
注意事项
- 回执请求不保证100%能收到返回结果:收件方的邮件服务器、客户端可以自主选择是否响应回执请求,部分企业邮件服务会默认屏蔽回执发送
- 使用脚本任务实现时,回执请求填写的收件地址需要和发件人地址一致,否则大多数邮件服务会直接忽略该请求
- 若必须使用原生发送邮件任务,可以先将邮件生成eml文件,手动注入回执头后再调用外部SMTP工具发送,实现复杂度高于脚本任务方案
内容的提问来源于stack exchange,提问作者Robert Sebas
相关产品推荐
相关产品推荐

