VB.NET メール送信例
2011/08/31 13:34Update
VB.NET でEメールの送信例
Dim msg As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()
Dim mailAddrFrom As String = "from@yourdomain.com"
Dim mailAddrReplyTo As String = "replyto@yourdomain.com"
Dim mailAddrTo As String = "to@yourdomain.com"
Dim mailAddrCc As String = "cc@yourdomain.com"
Dim mailAddrBcc As String = "bcc@yourdomain.com"
Dim strSubject As String = "メールタイトル"
Dim strBody As String = "メール中身" + vbCrLf + "メールの内容"
Dim attachFilePath As String = "c:\\my.gif"
'From
msg.From = New System.Net.Mail.MailAddress(mailAddrFrom)
'ReplyTo
msg.ReplyTo = New System.Net.Mail.MailAddress(mailAddrReplyTo)
'Sender
msg.Sender = New System.Net.Mail.MailAddress(mailAddrFrom)
'宛先
msg.To.Add(New System.Net.Mail.MailAddress(mailAddrTo))
'CC
msg.CC.Add(New System.Net.Mail.MailAddress(mailAddrCc))
'BCC
msg.Bcc.Add(New System.Net.Mail.MailAddress(mailAddrBcc))
'添付ファイル
Dim attach As New System.Net.Mail.Attachment(attachFilePath)
msg.Attachments.Add(attach)
'優先順位を「重要」にする
msg.Priority = System.Net.Mail.MailPriority.High
'メールのサブジェクトと本文の文字化け対応
Dim enc As Encoding = System.Text.Encoding.GetEncoding("ISO-2022-JP") '文字コード
Dim subjectBase64 As String = System.Convert.ToBase64String(enc.GetBytes(strSubject), Base64FormattingOptions.None)
msg.Subject = String.Format("=?{0}?B?{1}?=", enc.HeaderName, subjectBase64)
'本文
Dim mailView As System.Net.Mail.AlternateView =
System.Net.Mail.AlternateView.CreateAlternateViewFromString(_
strBody, _
enc, _
System.Net.Mime.MediaTypeNames.Text.Plain)
mailView.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit
msg.AlternateViews.Add(mailView)
'メールの遅配、失敗したときの通知
msg.DeliveryNotificationOptions = _
System.Net.Mail.DeliveryNotificationOptions.Delay Or _
System.Net.Mail.DeliveryNotificationOptions.OnFailure
Dim sc As New System.Net.Mail.SmtpClient()
sc.Host = "smtpサーバ"
sc.Port = 25
sc.Credentials = New System.Net.NetworkCredential("ユーザID", "パスワード")
'web.config設定例
'<configuration>
' <system.net>
' <mailSettings>
' <smtp>
' <network host="SMTPサーバ" port="25" userName="ユーザID" password="パスワード" />
' </smtp>
' </mailSettings>
' </system.net>
'</configuration>
sc.EnableSsl = False 'or True
sc.Timeout = 30000 '30秒
'メール送信
sc.Send(msg)
参考資料
MailMessage クラス(System.Net.Mail.MailMessage)
SmtpClient クラス(System.Net.Mail.SmtpClient)
Sponsored Link
Comments
- Relative Articles
- VB.NETの異常処理 - Try ~ Catch ~ 構文 例 - (2011/08/10 15:07)
- VB.NETのHTTPダウンロード例 - (2011/08/10 15:23)
- VB.NETでのインスタンスについて - (2011/08/10 16:16)
- VB.NETの名前空間定義 - (2011/08/10 16:57)
- VB.NET クラスの定義 - (2011/08/10 17:47)
- VB.NET インタフェースの定義とその使用例 - (2011/08/11 11:35)
- VB.NET クラスのコンストラクタ - (2011/08/11 11:55)
- VB.NET getter/setterメソッドの定義方法 - (2011/08/11 16:46)
- VB.NETの列挙体定義 - (2011/08/12 11:02)
- VB.NETの構造体(Structure)定義 - (2011/08/12 11:05)