当发送zip文件大小为19mb的电子邮件时,它不会发送电子邮件

本文关键字:电子邮件 19mb 文件 zip 小为 | 更新日期: 2023-09-27 18:26:50

这在我的新类顶部:

MailMessage photosmessage;

这是我在新课上的方法:

public void SendPhotos(string fileNameToSend)
        {
            try
            {
                MailAddress from = new MailAddress("chocolade@gmail.com", "User " + (char)0xD8 + " Name",
                System.Text.Encoding.UTF8);
                MailAddress to = new MailAddress("MyEimalOfMyInternet");
                photosmessage = new MailMessage(from, to);
                photosmessage.Body = "Please check the log file attachment i have some bugs.";
                string someArrows = new string(new char[] { ''u2190', ''u2191', ''u2192', ''u2193' });
                photosmessage.Body += Environment.NewLine + someArrows;
                photosmessage.BodyEncoding = System.Text.Encoding.UTF8;
                photosmessage.Subject = "Log File For Checking Bugs" + someArrows;
                photosmessage.SubjectEncoding = System.Text.Encoding.UTF8;
                Attachment myAttachment = new Attachment(fileNameToSend, MediaTypeNames.Application.Octet);
                photosmessage.Attachments.Add(myAttachment);
                SmtpClient docsend = new SmtpClient("smtp.gmail.com", 587);
                docsend.SendCompleted += new SendCompletedEventHandler(docsend_SendCompleted);
                docsend.EnableSsl = true;
                docsend.Timeout = 10000;
                docsend.DeliveryMethod = SmtpDeliveryMethod.Network;
                docsend.UseDefaultCredentials = false;
                docsend.Credentials = new NetworkCredential("gmailusername", "gmailpassword");
                string userState = "test message1";
                docsend.SendAsync(photosmessage, userState);
                SendLogFile.Enabled = false;
            }
            catch (Exception errors)
            {
                Logger.Write("Error sending message :" + errors);
            }
        }

我在Form1中使用这种方法,如下所示:

se.SendPhotos(outputtext+"''"+"textfiles.zip");
se.SendPhotos(outputphotos + "''" + "photofiles.zip");

第一次它发送压缩文件中一些文本文件的压缩文件大约是5kb发送zip文件没有问题。

然后它发送了一个19mb的zip文件,里面有一些图像/照片,每张照片大约7.55mb这一次,zip文件从未进入我的电子邮件。

文本文件中的第一个zip文件我得到了,但第二个我从来没有得到过。我使用我的gmail电子邮件帐户将这些文件发送到我的常规isp电子邮件帐户。

我知道在gmail中,你不能发送超过25mb的照片,但照片的zip文件是19mb

还有什么原因导致我没有得到第二个zip文件?

编辑:

我想我知道问题出在哪里。当获取和创建文本文件的zip时,我做了一个过滤器".txt",但当使用照片zip文件时,我对所有文件都做了".*":

string[] photosfiles = Directory.GetFiles(s, "*.*", SearchOption.AllDirectories);

结果是,我在zip文件中有一个.ini文件。

如何筛选所有图像类型?

string[] photosfiles = Directory.GetFiles(s, "*.jpg", SearchOption.AllDirectories);

这只适用于jpg文件,但如果我也想获得png或bmp?

当发送zip文件大小为19mb的电子邮件时,它不会发送电子邮件

对于添加的问题(在Edit中),您可以使用以下代码来获取您想要的所有文件:

 string[] extensions = {"*.bmp","*.jpg","*.png", "*.gif" };//add extensions you want to filter first
 var filenames = extensions.SelectMany(x => Directory.GetFiles(s, x));

希望能有所帮助。

尝试发送一个简单的文本文件来检查您的解决方案是否有效。如果通过了,那么您的ISP可能正在进行筛选。一些ISP的限制为5百万字节。还要确保你的拉链里只有照片。如果你有任何前任等等,这些都可以被屏蔽。检查你的垃圾邮件文件夹。

不过,真的,只要确保文本附件通过即可。

如果附件只包含照片和文本文件,谷歌将打开zip文件并检查您是否没有附加任何可能有潜在危险的内容(.exe、.bat等

或者,您可以在zip文件中发送一个zip文件。(请参阅此处查看无法通过Gmail发送的内容的完整列表)

我可以想象,在任何违反发送条件的情况下,SMTP请求都会被隐式拒绝。

照片压缩文件只是照片吗?我试着上网查看Gmail是否对SMTP请求实施了进一步的限制,但什么也找不到。。。