0

c# を使用して winform アプリケーションを開発するために、vs 2010 を使用しています。

メールボックスから電子メールの添付ファイルをダウンロードするために、私は pop3.dll を使用しました

私のコードは、インターネットに直接接続されているマシンで使用すると添付ファイルをダウンロードしますが、ISAサーバー2004がファイアウォールとして使用されているドメイン内で使用すると、コードはメールボックスボックスにあるメッセージの数だけを表示し、次に進みます待っている

なぜこの問題を解決するために何をすべきか教えてください..

ここにコードがあります

public bool DownloadEmailWithAttachment(string Type)
    {
        try
        {
            EventLog.WriteEntry("Service", "Attachment Path :> " + AttachmentDir);
            long count = 0;
            Pop3Client email = new Pop3Client(UserName, Password, IncomingPopAddress);
            email.OpenInbox();                
            //LogEntry();
            EventLog.WriteEntry("Service", "Counter :> " + email.MessageCount);
            while (email.NextEmail())
            {
                count = email.MessageCount;
                if (email.IsMultipart)
                {

                    IEnumerator enumerator = email.MultipartEnumerator;
                    while (enumerator.MoveNext())
                    {
                        Pop3Component multipart = (Pop3Component)enumerator.Current;
                        string checkIfFile = multipart.Filename;

                        if (checkIfFile != null)
                        {
                            //Console.WriteLine("checkIfFile.Contains('Leave') =" + checkIfFile.ToString());
                            EventLog.WriteEntry("Service", "checkIfFile.Contains('"+Type+"') =" + checkIfFile.ToString());
                            if (checkIfFile.Contains(""+Type))
                            {
                                EventLog.WriteEntry("Service", "Attachment name=" + multipart.Name); // ... etc
                                byte[] filebytes = Encoding.ASCII.GetBytes(multipart.Data);

                                //Search FileName
                                int fileLength = checkIfFile.Length;
                                EventLog.WriteEntry("Service", "fileLength=" + fileLength);
                                //int Begin = multipart.ContentType.IndexOf("name="+checkIfFile.ToString());
                                string leFileNale = checkIfFile.ToString();
                                EventLog.WriteEntry("Service", leFileNale);
                                FileStream LeFS = new FileStream(AttachmentDir + "\\" + leFileNale, FileMode.Create, FileAccess.Write, FileShare.None);
                                LeFS.Write(filebytes, 0, filebytes.Length);
                                LeFS.Close();
                                string DeleteMailContainingSubject = email.Subject.ToString();
                                if (email.Subject.Contains(DeleteMailContainingSubject))
                                {
                                    email.DeleteEmail();
                                    EventLog.WriteEntry("Service", "Email with Subject " + DeleteMailContainingSubject);
                                }
                            }
                        }
                    }
                }
            }                
            email.CloseConnection();
        }
        catch (Pop3LoginException ex)
        {
            EventLog.WriteEntry("Service","Exception :" + ex.ToString());
        }
        return true;
    }

これは、電子メールの添付ファイルをダウンロードするための私のコードです。

4

0 に答える 0