前回、MailBee.NET でメールの送信を行ったので、ついでに受信も行ってみます。

MailBee.NET Objects
http://www.afterlogic.com/products/net-email-components

 

POP3でメールを受信する場合

 
        static void Main(string[] args)
        {
            MailBee.Pop3Mail.Pop3.LicenseKey = "ライセンスキー";
            MailBee.Pop3Mail.Pop3 pop3 = new MailBee.Pop3Mail.Pop3();
            
            pop3.Connect("POP3サーバーアドレス");
            pop3.Login("アカウント", "パスワード");
            
            for (int i = 1, max = pop3.InboxMessageCount; i <= max; i++)
            {
                MailBee.Mime.MailMessage msg = pop3.DownloadEntireMessage(i);
            
                Console.WriteLine("From: " + msg.From.ToString());
                Console.WriteLine("Subject: " + msg.Subject);
                Console.WriteLine(msg.BodyPlainText);
                Console.WriteLine("---------------------------------");
            
                pop3.DeleteMessage(i);
            }
            
            if (pop3.IsConnected)
                pop3.Disconnect();
        }

 

GmailなどでIMAPを使用する場合は、こんな感じになります。

 
        static void Main(string[] args)
        {
            MailBee.ImapMail.Imap.LicenseKey = "ライセンスキー";
            MailBee.ImapMail.Imap imap = new MailBee.ImapMail.Imap();
            
            imap.Connect("imap.gmail.com");
            imap.Login("アカウント@gmail.com", "パスワード");
            
            imap.SelectFolder("Inbox");
            
            for (int i = 1, max = imap.MessageCount; i <= max; i++)
            {
                MailBee.Mime.MailMessage msg = imap.DownloadEntireMessage(i, false);
            
                Console.WriteLine("From: " + msg.From.ToString());
                Console.WriteLine("Subject: " + msg.Subject);
                Console.WriteLine(msg.BodyPlainText);
                Console.WriteLine("---------------------------------");
            }
            
            if (imap.IsConnected)
                imap.Disconnect();
        }

MailBee.NET Objects は、SMTP、POP3、IMAPなどを含んだメールコンポーネントです。

MailBee.NET Objects
http://www.afterlogic.com/products/net-email-components

MailBee.NET をインストールすると、サンプル(C#, VB)もインストールされるので簡単に動作確認なども行えます。

ただ、サンプルのままでは、携帯などに日本語を含んだメールを送ると、やはり文字化けが起こる可能性がありますので、「Content-Transfer-Encoding"」と「Charset」を指定する必要があります。

        static void Main(string[] args)
        {
            MailBee.SmtpMail.Smtp.LicenseKey = "ライセンスキー";
            
            MailBee.SmtpMail.Smtp smtp = new MailBee.SmtpMail.Smtp();
            smtp.Message.From.AsString = "送信者のメールアドレス";
            smtp.Message.To.AsString = "受取人のメールアドレス";
            smtp.Message.Subject = "サブジェクト";
            smtp.Message.BodyPlainText = "本文";
            
            // 「Content-Transfer-Encoding"」と「Charset」を指定
            smtp.Message.MailTransferEncodingPlain = MailBee.Mime.MailTransferEncoding.Raw7bit;
            smtp.Message.Charset = "iso-2022-jp";
            
            smtp.SmtpServers.Add("SMTPサーバーアドレス");
            smtp.Send();

        }

GmailなどTLSを使用する場合は、こんな感じになります。

        static void Main(string[] args)
        {

            MailBee.SmtpMail.Smtp.LicenseKey = "ライセンスキー";
            
            MailBee.SmtpMail.Smtp smtp = new MailBee.SmtpMail.Smtp();
            smtp.Message.From.AsString = "アカウント@gmail.com";
            smtp.Message.To.AsString = "受取人のメールアドレス";
            smtp.Message.Subject = "サブジェクト";
            smtp.Message.BodyPlainText = "本文";
            
            // 「Content-Transfer-Encoding"」と「Charset」を指定
            smtp.Message.MailTransferEncodingPlain = MailBee.Mime.MailTransferEncoding.Raw7bit;
            smtp.Message.Charset = "iso-2022-jp";
            
            MailBee.SmtpMail.SmtpServer server = new MailBee.SmtpMail.SmtpServer();
            server.Name = "smtp.gmail.com";
            server.SslMode = MailBee.Security.SslStartupMode.UseStartTls;
            server.Port = 587;
            server.AuthMethods = MailBee.AuthenticationMethods.Auto;
            server.AuthOptions = MailBee.AuthenticationOptions.PreferSimpleMethods;
            server.AccountName = "アカウント@gmail.com";
            server.Password = "パスワード";
            
            smtp.SmtpServers.Add(server);
            smtp.Send();

        }

 

MailBee.NET は、NET1.1/2.0/3.0/3.5/4や.NET Compact Framework2.0/3.5と多くの.NET frameworksのバージョンに対応しています。

SmtpClientで問題がある場合など、試用も出来るので MailBee.NET を試してみてはいかがでしょうか?