CodePanic! > C#.NET Tips > 今ここ
■メールを送信する
メールを送信する簡単なサンプルです。
送信先に,や;区切りでアドレスを入力し(1つでも構いません)
タイトルとメッセージを入力したら送信ボタンで送信します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Mail;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void buttonSend_Click(object sender, EventArgs e)
{
try
{
// 送信先を,や;区切りで複数指定されていれば分割し、mailTo配列に入れる
string[] separator = { ",;" };
string[] mailTo = textBoxSendTo.Text.Split(separator, StringSplitOptions.RemoveEmptyEntries);
// 送信先が1件でもあれば
if (mailTo.Length >= 1)
{
MailMessage msg = new MailMessage(
"from@from.com", // 差出人Fromアドレス
mailTo[0], // 送信先アドレス
textBoxTitle.Text, // タイトル名
textBoxMessage.Text); // メッセージ
// ヘッダを追加する時はこんな感じで(任意)
msg.Headers.Add("X-Mailer", "hogehoge");
// 文字コードを設定
Encoding enc = Encoding.GetEncoding("iso-2022-jp");
msg.SubjectEncoding = enc;
msg.BodyEncoding = enc;
// 送信先が2件以上あればCCに追加
if (mailTo.Length >= 2)
{
foreach (string to in mailTo)
msg.CC.Add(to);
// 最初のアドレスはToと重複なので削除
msg.CC.RemoveAt(0);
}
// SMTPサーバーのアドレスとポート
SmtpClient sc = new SmtpClient("pop.hogehoge.jp", 25);
// IDとPassword
sc.Credentials = new NetworkCredential("id", "password");
// 暗号化のためのSSLを利用するか?
sc.EnableSsl = false;
// 呼び出しがタイムアウトになるまでの時間(ミリ秒)
sc.Timeout = 10000;
// メール送信
sc.Send(msg);
// リソース解放
msg.Dispose();
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
}
}
Copyright © 2008.07 - shougo suzaki
|