0

这是在我的新班上:

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 发送压缩文件没有问题。

然后它发送一个 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 ?

4

3 回答 3

1

尝试发送一个简单的文本文件来检查您的解决方案是否有效。如果通过了,那么您的 ISP 可能正在过滤。一些 ISP 有 5mb 的限制。还要确保这些拉链中只有图片。如果您有任何前任等,则可以阻止这些。检查您的垃圾邮件文件夹。

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

于 2013-08-08T14:52:55.833 回答
1

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

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

希望能帮助到你。

于 2013-08-08T15:43:21.270 回答
0

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

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

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

照片 zip 文件只是照片吗?我尝试在线查看 Gmail 是否确实对 SMTP 请求实施了进一步限制,但找不到任何东西......

于 2013-08-08T14:56:14.273 回答