The project of U-WA-
http://uwa.potetihouse.com/
戻る
TKMP.DLL   プログラミングTips

メールのヘッダ情報のみ受信する

 サーバーからメールのヘッダ情報のみ受信する場合はTKMP.Net.MailDataクラスのReadHeaderメソッドを実行した後、 HeaderStreamプロパティからSystem.IO.Streamクラスとして取り出します。 メールの解析は全文を読み出した場合と同じで、TKMP.Reader.MailReaderクラスが利用可能です。
 ReadBodyメソッドで全文を読み出した場合でもHeaderStreamプロパティからStreamを読み出すことはできません。 これは、TKMP.Net.MailDataクラスはデータの解析を行っていないため、2つの読み出し結果をまったく別のものとして扱っているためです。
C#.NET
//接続情報
string server = "mail.example.jp";
int port = 110;
string userid = "userid";
string pass = "pass";

//サーバへの接続用クラスを作成する
System.Net.IPAddress address = System.Net.Dns.GetHostByName(server).AddressList[0];
TKMP.Net.IPopLogon logon = new TKMP.Net.BasicPopLogon(userid , pass);
TKMP.Net.PopClient pop = new TKMP.Net.PopClient(logon , address , port);

//接続開始
if(!pop.Connect())
{
    System.Windows.Forms.MessageBox.Show("接続失敗");
    return ;
}

//ヘッダ情報の読み出し
int MailNumber = 1; // 読み出しを行うメールインディックス
TKMP.Net.MailData Mail = pop.MailDatas[MailNumber];

if(!Mail.ReadHeader())
{
    System.Windows.Forms.MessageBox.Show("データ受信に失敗しました");
}
else
{
    System.IO.Stream Header = Mail.HeaderStream; 
    System.Windows.Forms.MessageBox.Show("ヘッダ情報を受信しました");

    //件名の表示
    TKMP.Reader.MailReader reader = new TKMP.Reader.MailReader(Header , true);
    string subject = reader.HeaderCollection["Subject"];
    System.Windows.Forms.MessageBox.Show("メールの件名は「" + subject + "」です");
}

//切断
pop.Close();
VB.NET
'接続情報
Dim server As String = "mail.example.jp"
Dim port As Integer = 110
Dim userid As String = "userid"
Dim pass As String = "pass"

'サーバへの接続用クラスを作成する
Dim address As System.Net.IPAddress = System.Net.Dns.GetHostByName(server).AddressList(0)
Dim logon As New TKMP.Net.BasicPopLogon(userid, pass)
Dim pop As New TKMP.Net.PopClient(logon, address, port)

'接続開始
If Not pop.Connect() Then
   System.Windows.Forms.MessageBox.Show("接続失敗")
   Return
End If

'ヘッダ情報の読み出し
Dim MailNumber As Integer = 1 ' 読み出しを行うメールインディックス
Dim Mail As TKMP.Net.MailData = pop.MailDatas(MailNumber)

If Not Mail.ReadHeader() Then
   System.Windows.Forms.MessageBox.Show("データ受信に失敗しました")
Else
   Dim Header As System.IO.Stream = Mail.HeaderStream
   System.Windows.Forms.MessageBox.Show("ヘッダ情報を受信しました")
   
   '件名の表示
   Dim reader As New TKMP.Reader.MailReader(Header, True)
   Dim subject As String = reader.HeaderCollection("Subject")
   System.Windows.Forms.MessageBox.Show(("メールの件名は「" + subject + "」です"))
End If

'切断
pop.Close()
VB.NETのコードはC#.NETを元に「C#.NET to VB.NET Translator」によって作成したものです

トップページへ移動
The project of U-WA-
http://uwa.potetihouse.com/