使用MailKit .NET库发送PEC邮件(C#代码实现咨询)
用MailKit发送意大利PEC邮件的可行方案
可以使用MailKit发送PEC邮件,PEC是意大利法定的挂号邮件系统,本质是遵循特定规范的加密SMTP邮件,只要配置正确的参数和头信息即可实现。
核心配置要点
- SMTP服务器设置:使用你的PEC服务商提供的SMTP服务器(例如Poste Italiane的
smtp.pec.it),启用SSL/TLS加密,端口通常为465(SSL)或587(STARTTLS),并通过PEC账号密码完成身份验证。 - PEC专属邮件头:
- 必须添加
X-Pec-Message-Type: Registered,标记此邮件为挂号PEC邮件 - 可选添加
X-Pec-Notification: Delivery,要求获取投递回执
- 必须添加
- 回执设置:通过MailKit的
DeliveryNotificationOptions配置成功/失败的投递回执,接收地址填写你的PEC邮箱。
代码示例
using MailKit.Net.Smtp; using MimeKit; var message = new MimeMessage(); message.From.Add(new MailboxAddress("你的名称", "your-pec-address@pec.it")); message.To.Add(new MailboxAddress("收件人名称", "recipient-pec@pec.it")); message.Subject = "Test PEC邮件"; // 添加PEC必填头 message.Headers.Add("X-Pec-Message-Type", "Registered"); // 可选:要求投递回执 message.Headers.Add("X-Pec-Notification", "Delivery"); // 设置回执接收地址 message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess | DeliveryNotificationOptions.OnFailure; message.ReplyTo.Add(new MailboxAddress("你的名称", "your-pec-address@pec.it")); // 构造邮件内容 var bodyBuilder = new BodyBuilder(); bodyBuilder.TextBody = "这是一封测试PEC邮件的内容。"; message.Body = bodyBuilder.ToMessageBody(); // 发送邮件 using (var client = new SmtpClient()) { // 连接SMTP服务器,替换为你的PEC服务商地址 client.Connect("smtp.pec.it", 465, true); // 认证账号 client.Authenticate("your-pec-address@pec.it", "your-pec-password"); // 发送邮件 client.Send(message); client.Disconnect(true); }
注意事项
- 确认你的PEC账号已开启SMTP访问权限,部分服务商需要在后台手动启用
- 邮件内容需符合意大利相关法律要求,确保收件人信息准确、主题明确
- 测试阶段建议先给自己发送PEC邮件,检查是否收到官方系统的回执和确认通知
内容的提问来源于stack exchange,提问作者Giovanni Perri
相关产品推荐
相关产品推荐

