プロジェクト情報・進め方
- .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>
}
おわりに
- エラーハンドリング
- ファイル添付
も調べておきたいですの♪
以上です。
