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");

最初に、zip ファイル内のいくつかのテキスト ファイルの圧縮ファイルを送信するのは約 5kb です。zip ファイルの送信は問題ありません。

次に、19 MB の zip ファイルを送信します。その中には、それぞれの写真が約 7.55 MB の画像/写真が含まれています。今回は、zip ファイルがメールに届きません。

テキスト ファイルの最初の zip ファイルは取得できますが、2 番目の zip ファイルは取得できません。Gmail のメール アカウントを使用して、このファイルを通常の isp メール アカウントに送信しています。

Gmail では 25 MB 以上を送信できないことはわかっていますが、写真の zip ファイルは 19 MB です

2 番目の 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

追加された質問 ( 内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 に答える