15
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WindowsアプリケーションからGmail送信する

Posted at

よくある話題ですが、たまたまちょっと、ちょっとしたメール送信処理が必要で、いつものように適当なWindowsフォームアプリケーションで作ってみたというものです。

【まとめ】
・アプリなどからGmailの送信をするには、アプリパスワードが必要
・アプリパスワードの利用には2段階認証を有効にする必要がある
 それぞれ設定はこちらから→ログインとセキュリティ
・サンプルのソースコードは以下を参照

#サンプルコード

using System.Net.Mail;
 :

private string mailID;
private string mailPassword;
private string mailFrom;
private string mailTo
private string mailSubject;
private string mailBodyt
 :

private void SendMail()
{
    try
    {
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.Port = 587;

        smtp.Credentials = new System.Net.NetworkCredential(mailID, mailPassword);
        smtp.EnableSsl = true;
        MailMessage msg = new MailMessage(mailFrom, mailTo, mailSubject, mailBody);
        smtp.Send(msg);

        MessageBox.Show($"{mailTo} にメール送信しました。");
    }
    catch (Exception e)
    {
        MessageBox.Show(e.Message);
    }
}

#参考まで、事の経緯
何かサンプルコードを探す
たまたま見つかった次の記事を参考にしました。
c#でgmailを利用してメールを送るだけのプログラム - 39Si

しかし、これでは次のエラーとなります。

SMTP サーバーにセキュリティで保護された接続が必要であるか、またはクライアントが認証されていません。 サーバーの応答:5.5.1 Authentication Required. Learn more at

アプリパスワードが必要とわかる
ちょっと調べてみると、現在はアプリパスワードなるものが必要とのこと。
次の記事を参考:C# - GMail送信について(70064)|teratail

では、アプリパスワードについて調べてみると次のヘルプが。
アプリ パスワードでログイン - Google アカウント ヘルプ

しかし今度は、次のメッセージが

お探しの設定はお使いのアカウントでは利用できません。

アプリパスワードの発行は2段階認証が必要とわかる
どうやら、2段階認証を有効にしていないと発行できないようですね。
なので、2段階認証を設定して、アプリパスワードを設定すれば、無事メール送信できるようになります。

2段階認証やアプリパスワードの設定は次のページから。
ログインとセキュリティ

後は画面の指示通りに進めば簡単な内容でした。

以上

15
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?