簡體   English   中英

在 Asp.net/C# 中發送帶有附件的電子郵件 - Gmail 的問題

[英]Sending email in Asp.net / C# with attachments - Issues with Gmail

在 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("MYEMAIL@DOMAIN.COM");

            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 等桌面電子郵件客戶端一起使用。 你能驗證一下嗎? 請看這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM