1. ホーム
  2. c#

[解決済み] .NETでGmailを使ったメール送信

2022-03-16 17:17:18

質問

電子メールを送信するためにホストに依存する代わりに、私は自分の電子メールメッセージを使用して送信することを考えていました。 Gメール のアカウントを使用します。私の番組で演奏するバンドに向けたパーソナライズされたメールです。

できるのでしょうか?

どのように解決するのですか?

必ず System.Net.Mail ではなく、非推奨の System.Web.Mail . でSSLを行うには System.Web.Mail は、ハコモノの拡張機能がキモです。

using System.Net;
using System.Net.Mail;

var fromAddress = new MailAddress("[email protected]", "From Name");
var toAddress = new MailAddress("[email protected]", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}

さらに Google アカウント >セキュリティ のページを開き Googleへのサインイン > 2段階認証 の設定を行います。

  • 有効になっている場合、.NETによる2段階認証の回避を許可するパスワードを生成する必要があります。これを行うには、以下のボタンをクリックします。 Googleへのサインイン > アプリのパスワード を選択し、アプリ=メール、デバイス=Windowsコンピュータを選択し、最後にパスワードを生成してください。生成されたパスワードは fromPassword 定数は、標準的なGmailパスワードの代わりに使用します。
  • 無効になっている場合は 安全性の低いアプリのアクセス これはお勧めできません。そのため、2段階認証を有効にすることをお勧めします。