【開発】C#でメールをGoogleAppsに送信してみた

sc20110910182339

そういたC#でメール送信した事ないなぁと思って、やってみた。

ネットから情報を拾いながら、なんとかGoogleAppsのSMTPから送信できました。

9/11間違いがあったので更新


 

急いでコピペしたので、余計なやつも混じってるかと思いますが、大体分かるかなと思います。

.net2.0以降標準のSMTPClientでの方法です。Google Apps側では(認証まわりとか)設定不要です。

usedefaultcredentilas(bool)に触れると、なぜか、一切ダメでした・・。どちらの値を入れてもなぜか接続できませんでした。

以下の例では、ファイル添付もやってます。strFileにそのままファイルパスが入ってるイメージです。ネット上の情報をもとにファイル添付関連コードをコピペしたら、「そのコード古いやんか、ワレ~」と、VSさんにどつかれました。色々と仕様変更されてんですね。

他のSMTPでは試してないです。

SmtpClient sc =
	new SmtpClient("smtp.gmail.com", 587);
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.Credentials = new NetworkCredential(SMTPID, SMTPPW);
sc.EnableSsl = true;
//sc.UseDefaultCredentials = false;
sc.Timeout = 10000;

try
{
	MailAddress maFrom = new MailAddress(
		SMailAdr, Name, Encoding.UTF8);
	MailAddress maTo = new MailAddress(
		DMailAdr, Name, Encoding.UTF8);
	MailMessage msg = new System.Net.Mail.MailMessage(maFrom, maTo);
	msg.Body = "";
	msg.IsBodyHtml = false;
	msg.BodyEncoding = Encoding.UTF8;
	msg.Subject = "";
	msg.SubjectEncoding = Encoding.UTF8;
	Attachment attachment = new Attachment(strFile);
	msg.Attachments.Add(attachment);
	//送信
	sc.Send(msg);
	msg.Dispose();
	MessageBox.Show("メールが送信されました",
		"確認 - " + Common.ApplicationID, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch(Exception ex) 
{
	MessageBox.Show("メール送信に失敗しましたnn" + ex.Message,
		"エラー - " + Common.ApplicationID,MessageBoxButtons.OK,MessageBoxIcon.Error);
}