わたろぐ

仕事、読書、ガジェット、グルメ、写真、旅行など雑多な備忘

【VB.NET】 メールの新規作成画面を開く

仕事で大量の宛先にメールを送らないと行けない作業が発生しました。メールは1通ずつ確認してから送信したかったので、方法を探してみました。 結果的に規定のメーラーの新規作成画面を開くときに、宛先、題名、本文を入力された状態で開くことができそうだったので、それを活用することにしました。

以下のメソッドを使いました。

System.Diagnostics.Process.Start(“mailto:<宛先>?cc=<CC>&bcc=<BCC>&subject=<件名>&body=<本文>”)

メモとして、メーラーの新規作成画面を開くコードを貼付けておきます。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim addr As String = "" 'アドレス
        Dim subj As String = "" '題名
        Dim body As String = "" '本文

        'アドレスをセット
        addr = "test@aaa.com;test2@aaa.com" '複数送信先は;で区切る

        '題名をセット
        subj = "テストメール タイトル"

        '本文をセット
        body = body & "○○○様" & "%0D%0A"
        body = body & "" & "%0D%0A"
        body = body & "お疲れ様です。△△△です。" & "%0D%0A"
        body = body & "テストメールを送信します。" & "%0D%0A"

        '改行コードは「%0D%0A」で表す

        'メール作成フォームを開く
        System.Diagnostics.Process.Start("mailto:" & addr & "?subject=" & subj & "&body=" + body)
    End Sub
End Class

後は宛先、タイトル、本文をCSVなどで取り込み、処理をまわせば送信手前の新規作成の状態で表示されます。

本文中の改行は「%0D%0A」を使っています。

以下のページを参考にしました。 .NET TIPS プログラムからブラウザやメーラを起動するには?