您好我们正在尝试使用MailKit开发邮件发送系统。我们有一组使用WORD创建并保存为MHTML文件的电子邮件模板。当我们使用MailKit从MHT文件创建MimeMessage时,整个工作正常。
但是在发布此消息后,我无法看到添加附件的方法。
目前我们正在尝试以下方法。
private void SendEmail(string templatePath, List<string> attachments)
{
// Load the MHT Template
var mimeMessage = MimeMessage.Load(templatePath);
mimeMessage.From.Add(new MailBoxAddress("test@Test.com"));
mimeMessage.To.Add(new MailBoxAddress("test@Test.com"));
foreach (var attachment in attachments)
{
var fileAttachment = new MimePart()
{
ContentObject = new ContentObject(File.OpenRead(Path.Combine(attachment), ContentEncoding.Default),
ContentDisposition = new ContentDisposition(ContentDisposition.Attachment),
ContentTransferEncoding = ContentEncoding.Binary,
FileName = Path.GetFileName(attachment)
};
// Attachments is a read only Enumerable here.
mimeMessage.Attachments.Add
}
}
答案 0 :(得分:0)
您需要遍历邮件的MIME树结构,直到找到要添加“附件”的Multipart
,然后使用Multipart.Add()方法。
请记住,消息是嵌套的树结构,而不是一个定义良好的结构,它只有一个消息体(甚至只有2个)和一个附件列表。这比那复杂得多,所以MimeMessage.Attachments实际上没办法“做正确的事”。
答案 1 :(得分:0)
我通过BodyBuilder添加了附件:
BodyBuilder _body = new BodyBuilder
{
HtmlBody = message
};
_body.Attachments.Add(_fileName, _stream);
_email.Body = _body.ToMessageBody();
查看此帖子stackoverflow