在ASP / C#应用程序中,我发送的电子邮件带有3个文件附件。这3个文件具有相同的类型,相同的扩展名以及或多或少的相同大小(但都不为空)。电子邮件已正确发送。如果使用Outlook打开它,则不会有任何问题。我可以看到主体,以及随附的3个文件。
但是这是我的问题:如果我将该邮件发送到Gmail地址,那么在Gmail上我只能看到2个附件。
如果我单击下载所有附件图标(在右侧),它将下载2个可见附件+第三个附件,但为空。
这是一个很奇怪的问题。
还有第四个附件是嵌入式图像。并且此图像正确显示在邮件正文中。
这是我用来发送邮件的代码:
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("SMTP_IP_ADRESS", SMTP_IP_PORT);
mail.From = new MailAddress("[email protected]");
mail.To.Add("GMAIL_EMAIL");
mail.To.Add("OUTLOOK_EMAIL");
mail.Subject = "MSN "+Request.Params["nameMsn"];
Attachment imageAttachment = new
Attachment(Server.MapPath(Url.Content("~/Content/images/image.png")));
string contentID = "logoCare";
imageAttachment.ContentId = contentID;
mail.IsBodyHtml = true;
mail.Body = "<html><body>Have a good day.<br/>Best regards. <br/><br/><img width='200'
src=\"cid:"
+ contentID + "\"></body></html>";
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFileBase file = Request.Files[i];
var attachment = new Attachment(file.InputStream, file.FileName,
MediaTypeNames.Application.Octet);
mail.Attachments.Add(attachment);
}
mail.Attachments.Add(imageAttachment);
SmtpServer.Send(mail);
您看到的第三个附件为空,这可能是基于Web的电子邮件客户端(如Gmail)无法管理的CID嵌入式图像,同时它可与Outlook等桌面电子邮件客户端一起使用。你能验证一下吗?请查看here