みなさん、メールの送信とか使ってますか?
クラシックASPのときにはExchangeServerがある環境だと送信できるというのでやった記憶があります。(もう忘れました)
.NETでは2002と2003のときは、System.Web.Mailを使っていたようですが、2005からは、System.Net.Mailを使ってくださいということのようです。
そこで、今回は送信のときに認証が必要なPort:587を使用するもので見てみたいと思います。(OP25Bのやつかな)
ASP.NETでの解説です。
まず、メールを送信するために必要な情報をweb.configに書き込みます。
<mailSettings>
<smtp from=abc@sample.jp
>
<network host="mail.sample.jp" password="password"
port="587" userName="admin" />
</smtp>
</mailSettings>
こんな感じで埋め込みます。
認証が必要なので、パスワードも書いておきます。
ソースですが、次のような感じです。
SmtpSection ss = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
string mailHost = ss.Network.Host;
int mailPort = ss.Network.Port;
string mailUserName = ss.Network.UserName;
string mailPassword = ss.Network.Password;
string mailFrom = ss.From;
SmtpClient sc = new SmtpClient();
sc.Host = mailHost;
sc.Port = mailPort;
sc.Credentials = new NetworkCredential(mailUserName, mailPassword);
MailMessage mm = new MailMessage(mailFrom, mailFrom, txtSubject.Text + ":" + User.Identity.Name + "より", txtBody.Text);
sc.Send(mm);
ここでは、あるメールアドレスから、そのメールアドレスに送信しています。
ここで注意するのが、認証のために必要な赤字のところです。
このNetworkCredentialがないと認証に失敗するようです。
また、ここでも、ConfigurationManagerが出てきています。
web.configから情報を取り出す時はConfigurationManagerが必要なのですかね。
今日はここまでです!