みなさん、メールの送信とか使ってますか?


クラシック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が必要なのですかね。


今日はここまでです!