C#を攻略しよう

c#

添付ファイルを乗せてメール送信

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キーを押すと、ヘルプが立ち上がります。

コメント以外の緑文字をサーバー環境にあわせて変更してください。

サンプルを実行し、相手先のメールアドレスとメールタイトル、メール本文を入力し、添付ファイルを参照ボタンから選択して送信ボタンをクリックすると、添付ファイル付のメールが送信されます。

 

 

※当サイトは、リンクフリーです。