GmailのSMTPサーバーを利用してメールを送信するコードを紹介します。
GmailのSMTPを利用してメールを送信します。Gmailでのメール送信はSSLの接続が必要で、メール送信時にSMTP認証も必要になります。この記事ではSSLを有効にしてSMTP認証でGmailのSMTPサーバーを利用してメールを送信するコードを紹介します。
こちらの記事を参照して「安全性の低いアプリを許可」を有効に設定します。
(別の方法として2段階認証を有効にし、アプリパスワードを利用する方法があります。)
Windows Formアプリケーションを作成します。
下図のUIを作成します。ボタンとテキストボックスを1つずつ配置します。
下記のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Mail;
namespace SimpleSmtp
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress("(送信元メールアドレス)", "送信者名");
msg.To.Add(new MailAddress("(宛先メールアドレス)", "宛先名"));
msg.Subject = "メッセージ件名";
msg.Body = "メール本文";
SmtpClient sc = new SmtpClient();
sc.Host = "smtp.gmail.com";
sc.Port = 587;
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.Credentials = new System.Net.NetworkCredential("(送信するGmailのアカウントメールアドレス)", "(パスワード)");
sc.EnableSsl = true;
sc.Send(msg);
msg.Dispose();
textBox1.Text+="メールを送信しました\r\n";
}
}
}
MailMessage, SmtpClient を利用したSMTPを利用してメールを送信するコードの基本動作についてはこちらの記事を参照して下さい。
メールアドレスやパスワードを設定した具体的な記述例は下記になります。
MailMessage msg = new MailMessage();
msg.From = new MailAddress("testmail@ipentec.jp", "自動送信メール");
msg.To.Add(new MailAddress("example@gmail.com", "YourName"));
msg.Subject = "メッセージ件名";
msg.Body = ""メール本文です。";
SmtpClient sc = new SmtpClient();
sc.Host = "smtp.gmail.com";
sc.Port = 587;
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.Credentials = new System.Net.NetworkCredential("example@gmail.com", "ABCD12345");
sc.EnableSsl = true;
sc.Send(msg);
msg.Dispose();
textBox1.Text+="メールを送信しました\r\n";
MailMessageで送信するメールのメッセージや送信者、宛先を設定します。メールの送信は SmtpClient オブジェクトで実行します。SmtpClient オブジェクトに送信先ポートやSSLの有効化の設定をします。
System.Net.NetworkCredential()
のコンストラクタの第一引数に送信するgMailのGoogleアカウントのメールアドレスを与えます。第二引数にGoogleアカウントのパスワードを与えます。
メール送信はSmtpClient
オブジェクトのSend
メソッドで実行します。
プロジェクトを実行します。下図のウィンドウが表示されます。
[button1]をクリックします。正常にメールが送信できると、「メールを送信しました」のメッセージがテキストボックスに表示されます。
メールの宛先のメールアカウントを確認します。新しいメールが届いていることがわかります。
メールを確認します。プログラムのコード設定したサブジェクトや本文、送信者名などが設定されていることが確認できます。C#のプログラムから送信されたメールです。
C#のプログラムでGmailのSMTPを利用してメールが送信できました。