添付ファイルを乗せてメール送信
POP Before
SMTP サーバでのメール送信 もっと簡単にメール送信
SMTP認証
添付ファイルを乗せてメール送信
添付ファイルを乗せてメールを送信するサンプルプログラムです。(POP Before SMTP サーバ対象)
POP Before SMTP サーバとは、SMTPサーバーに接続する前に、POPサーバーで認証手続きを行うことで、不正なメールの送信を未然に防ぐことを目的とした認証手続きのことです。
多くのホスティングサーバーではこの方式を採用しています。
@「ファイル」→「新しいプロジェクト」→「WINDOWSアプリケーション」を選択。
Aツールボックスから上図のように「TextBox」を4つと「Button」2つ、「Label」、「OpenFileDialog」を配置する。
C「button1」をダブルクリックして、次のコード(黒文字部分)を入力する。
using System.Net.Mail;
using System.Net.Sockets;
using System.IO;
<中略>
private void button1_Click(object sender, EventArgs
e)
{
TcpClient tcp = new TcpClient();
StreamWriter wr = null;
string send="USER ユーザー名\nPASS
パスワード\nQUIT\n";
MailMessage mm = new MailMessage("差出人メールアドレス",
textBox1.Text, //送信先のメールアドレス
textBox2.Text, //件名
textBox3.Text); //メール本文
//添付ファイルをセットする
mm.Attachments.Add(new Attachment(textBox4.Text));
try
{
//POPサーバーに接続する
tcp.Connect("POPサーバー",
110);
//認証用のユーザー名とパスワードをストリームに送る
wr = new StreamWriter(tcp.GetStream());
wr.Write(send);
SmtpClient sm = new
SmtpClient("SMTPサーバー");
//件名と本文、添付ファイルを送信する
sm.Send(mm);
label2.Text = "送信しました。";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
wr.Close();
tcp.Close();
}
private void button2_Click(object sender,
EventArgs e)
{
if (openFileDialog1.ShowDialog()
!= DialogResult.OK) return;
textBox4.Text = openFileDialog1.FileName;
}
}
メソッドの上にマウスポインタをもってくると、ポップアップヒントが表示されます。またF1キーを押すと、ヘルプが立ち上がります。
コメント以外の緑文字をサーバー環境にあわせて変更してください。
サンプルを実行し、相手先のメールアドレスとメールタイトル、メール本文を入力し、添付ファイルを参照ボタンから選択して送信ボタンをクリックすると、添付ファイル付のメールが送信されます。
※当サイトは、リンクフリーです。