.NET環境からのメール送信について、検証用にいくつかの方法を試したときのメモです。
送信先のメールアドレス、件名、本文が設定された状態でWindowsの規定のアプリで設定されているメーラーが起動します。
この方法ではメールの送信を行うことはできませんが、たった1行で編集画面に最低限の初期値を流し込むことができるので便利です。
CCやBCCも「&cc=《CC先メールアドレス》」「&bcc=《BCC先メールアドレス》」とパラメータをつなげることで設定可能です。
System.Diagnostics.Process.Start("mailto:" & 《送信先メールアドレス》 & "?subject=" & Uri.EscapeDataString(《件名》) & "&body=" & Uri.EscapeDataString(《本文》))
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( 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
Please give us your valuable comment