VB .NETからメールを送信

木曜日 , 14, 5月 2020 Leave a comment

.NET環境からのメール送信について、検証用にいくつかの方法を試したときのメモです。

  • Windowsの規定のアプリで設定されているメーラーを起動

送信先のメールアドレス、件名、本文が設定された状態でWindowsの規定のアプリで設定されているメーラーが起動します。
この方法ではメールの送信を行うことはできませんが、たった1行で編集画面に最低限の初期値を流し込むことができるので便利です。

CCやBCCも「&cc=《CC先メールアドレス》」「&bcc=《BCC先メールアドレス》」とパラメータをつなげることで設定可能です。

System.Diagnostics.Process.Start("mailto:" & 《送信先メールアドレス》 & "?subject=" & Uri.EscapeDataString(《件名》) & "&body=" & Uri.EscapeDataString(《本文》))
  • Outlookを使用してメール送信

WindowsにインストールされているOutlookを使いメールを送信します。
送信に使用するメールサーバなどの設定はOutlookで設定されているものを使用し、送信したメールはOutlookの『送信済みアイテム』に残るので便利です。

Dim app As Object
Dim item As Object

app = CreateObject("Outlook.Application")

item = app.CreateItem(0)    ' 0 = OlItemType.olMailItem
item.To = "《送信先メールアドレス》"
item.Subject = "《件名》"
item.Body = "《本文》"

item.Send()

app.Quit()

  • MailKitを使用してメール送信

MailKit( https://github.com/jstedfast/MailKit )を使いメールを送信します。
MailKitはNuGet経由などであらかじめインストールされている必要があります。
この方法は、依存するライブラリやソフトが非常に少なく.NET Coreでも使用可能です。また、送信に関する多くの項目を自分で設定できるので便利です。

Dim mimeMessage As New MimeKit.MimeMessage

mimeMessage.From.Add(New MimeKit.MailboxAddress("《送信元氏名》", "《送信元メールアドレス》"))
mimeMessage.To.Add(New MimeKit.MailboxAddress("《送信先氏名》", "《送信先メールアドレス》"))
mimeMessage.Subject = "《件名》"
mimeMessage.Body = New MimeKit.TextPart(MimeKit.Text.TextFormat.Plain) With {.Text = "《本文》"}

Using client As New MailKit.Net.Smtp.SmtpClient()
    client.Connect("《SMTPホスト》", 《SMTPポート番号》, MailKit.Security.SecureSocketOptions.Auto)
    client.Authenticate("《SMTPユーザ名》", "《パスワード》")
    client.Send(mimeMessage)
    client.Disconnect(True)
End Using

Tags:, ,

Please give us your valuable comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください