SMTPでメールを送信する
注意:以下のサンプルコードの送信者と送信先は必ず変更するようにしてください。
.NET Framework 2.0以降で、SmtpClientクラスを使用する方法.NET Framework 2.0以降では、System.Net.Mail名前空間のSmtpClientクラスをして、簡単にSMTPメールを送信することができます。 以下に、最も簡単であろう例を示します。 '送信者 Dim senderMail As String = "sender@xxx.xxx" '宛先 Dim recipientMail As String = "recipient@xxx.xxx" '件名 Dim subject As String = "こんにちは" '本文 Dim body As String = "こんにちは。" + vbCrLf + vbCrLf + "それではまた。" Dim sc As New System.Net.Mail.SmtpClient() 'SMTPサーバーを指定する sc.Host = "localhost" 'メールを送信する sc.Send(senderMail, recipientMail, subject, body) //送信者 string senderMail = "sender@xxx.xxx"; //宛先 string recipientMail = "recipient@xxx.xxx"; //件名 string subject = "こんにちは"; //本文 string body = "こんにちは。\r\n\r\nそれではまた。"; System.Net.Mail.SmtpClient sc = new System.Net.Mail.SmtpClient(); //SMTPサーバーを指定する sc.Host = "localhost"; //メールを送信する sc.Send(senderMail, recipientMail, subject, body); 上記のような方法で送信されたメールは、件名、本文ともに、文字コードUTF-8のBase64でエンコードされて送信されます(ただしアルファベットのみの場合は、件名はそのままで、本文はUS-ASCIIのQuoted-Printable)。具体的には、上記のコードでは、以下のように送信されます。 UTF-8以外の文字コードでメールを送る方法も用意されていますが、この方法も色々と問題があります。詳しくは、「SmtpClientクラスを使ってメールを送信する」で説明します。 SmtpMailクラスを使用する方法.NET Framework 1.1以前では、System.Web.Mail名前空間のSmtpMailクラスを使うと、非常に簡単にSMTPメールを送信することができます。SmtpMailクラを使うには、「参照設定」に「System.Web.dll」を追加する必要があります。 SmtpMailクラスはCDOSYS(Collaboration Data Objects for Windows 2000)メッセージコンポーネントを使用するため、Windows 2000以上でしか使用できません。 以下に、最も簡単であろう例を示します。 'SMTPサーバーを指定する System.Web.Mail.SmtpMail.SmtpServer = "(SMTPサーバーを指定する)" '送信者が"sender@xxx.xx.com"、送信先が"recipient1@xxx.xx.com"、 '題名が"TEST"、メッセージが"This is a test mail." System.Web.Mail.SmtpMail.Send( _ "sender@xxx.xx.com", _ "recipient1@xxx.xx.com", _ "TEST", _ "This is a test mail.") //SMTPサーバーを指定する System.Web.Mail.SmtpMail.SmtpServer = "(SMTPサーバーを指定する)"; //送信者が"sender@xxx.xx.com"、送信先が"recipient1@xxx.xx.com"、 //題名が"TEST"、メッセージが"This is a test mail." System.Web.Mail.SmtpMail.Send( "sender@xxx.xx.com", "recipient1@xxx.xx.com", "TEST", "This is a test mail."); 上の例では日本語は文字化けしてしまいます。日本語のメールを送るためには、次のようにJISコードに変換して送信する必要があります。文字コードを指定している箇所について詳しくは、「文字コードを指定してテキストファイルを読み込む」をご覧ください。 Dim mm As New System.Web.Mail.MailMessage() '送信者 mm.From = "sender@xxx.xx.com" '送信先 mm.To = "recipient1@xxx.xx.com" '題名 mm.Subject = "テスト" '本文 mm.Body = "こんにちは。これはテストです。" 'JISコードに変換する mm.BodyEncoding = System.Text.Encoding.GetEncoding(50220) 'SMTPサーバーを指定する System.Web.Mail.SmtpMail.SmtpServer = "(SMTPサーバーを指定する)" '送信する System.Web.Mail.SmtpMail.Send(mm) System.Web.Mail.MailMessage mm = new System.Web.Mail.MailMessage(); //送信者 mm.From = "sender@xxx.xx.com"; //送信先 mm.To = "recipient1@xxx.xx.com"; //題名 mm.Subject = "テスト"; //本文 mm.Body = "こんにちは。これはテストです。"; //JISコードに変換する mm.BodyEncoding = System.Text.Encoding.GetEncoding(50220); //SMTPサーバーを指定する System.Web.Mail.SmtpMail.SmtpServer = "(SMTPサーバーを指定する)"; //送信する System.Web.Mail.SmtpMail.Send(mm);
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。
|
|
Copyright(C) DOBON!. All rights reserved.
|