プロジェクト情報・進め方
- .NET Framework 4.6.1
- Visual C#
- ASP.NET Web アプリケーション
- MVC 5
- 認証なし
- Homecontroller の Index アクション、ビューを修正していく
- SMTP サーバには Hotmail を利用した。Google アカウントは2段階認証や、アプリケーションパスワードなど、面倒事が多いため。
ボタンを押したらメールを送信
サンプルソースをコピペレベルでよいので、とにかく最低限のコードで送信できた状態に持って行きました♪
- SSL/TLSを使用してSMTPでメールを送信する: .NET Tips: C#, VB.NET
- c# – How to add smtp hotmail account to send mail – Stack Overflow
- SMTP サーバのホスト名 (IP アドレス): smtp.live.com
- SMTP サーバのポート番号: 587
- ユーザー名とパスワードは Microsoft アカウントのものを使用する。
public ActionResult Index() { return View(); } [HttpPost, ActionName("Index")] [ValidateAntiForgeryToken] public ActionResult IndexExec() { //Hotmailでメールを送信する //MailMessageの作成 var from = "xxxxx@hotmail.co.jp"; var to = "yyyyy@gmail.com"; var subject = "テスト"; var body = "このメールは、テストです。"; System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage( from, to, subject, body); System.Net.Mail.SmtpClient sc = new System.Net.Mail.SmtpClient(); //SMTPサーバーなどを設定する sc.Host = "smtp.live.com"; sc.Port = 587; sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; //ユーザー名とパスワードを設定する var userName = "xxxxx@hotmail.co.jp"; var password = "zzzzz"; sc.Credentials = new System.Net.NetworkCredential(userName, password); //SSLを使用する sc.EnableSsl = true; //メッセージを送信する sc.Send(msg); //後始末 msg.Dispose(); sc.Dispose(); return View(); }
@using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class="form-horizontal"> @Html.ValidationSummary(true, "", new { @class = "text-danger" }) <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="メール送信" class="btn btn-default" /> </div> </div> </div> }
おわりに
- エラーハンドリング
- ファイル添付
も調べておきたいですの♪
以上です。