在Asp.net/C#中发送带有附件的电子邮件-Gmail问题

问题描述 投票:0回答:1

在ASP / C#应用程序中,我发送的电子邮件带有3个文件附件。这3个文件具有相同的类型,相同的扩展名以及或多或少的相同大小(但都不为空)。电子邮件已正确发送。如果使用Outlook打开它,则不会有任何问题。我可以看到主体,以及随附的3个文件。

但是这是我的问题:如果我将该邮件发送到Gmail地址,那么在Gmail上我只能看到2个附件。

enter image description here

如果我单击下载所有附件图标(在右侧),它将下载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);
c# asp.net email smtp smtpclient
1个回答
0
投票

您看到的第三个附件为空,这可能是基于Web的电子邮件客户端(如Gmail)无法管理的CID嵌入式图像,同时它可与Outlook等桌面电子邮件客户端一起使用。你能验证一下吗?请查看here

© www.soinside.com 2019 - 2024. All rights reserved.