当发送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?
对于添加的问题(在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请求实施了进一步的限制,但什么也找不到。。。