読者です 読者をやめる 読者になる 読者になる

C#でメール送受信ライブラリTKMP.DLL

POP3Clientは日本語に弱いので困る。


受信のサンプル

{
    //接続情報
    string server = "sample.jp";
    int port = 110;
    string userid = "user";
    string pass = "pass";

    //サーバへの接続用クラスを作成する
    IPHostEntry hostInfo = System.Net.Dns.GetHostEntry(server);
    System.Net.IPAddress address = hostInfo.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 + "」です");
    }
    
    if( !Mail.ReadBody() ){
        System.Windows.Forms.MessageBox.Show("データ受信に失敗しました");
    }else{
        System.IO.Stream Body = Mail.DataStream;

        TKMP.Reader.MailReader reader = new TKMP.Reader.MailReader(Body, false);
        string maintext = reader.MainText; 
        System.Windows.Forms.MessageBox.Show("メールの件名は「" + maintext + "」です");
    }

    //切断
    pop.Close();

    return;

}

送信のサンプル

//メールの送信先サーバー名
string smtpserver = "mail.example.jp";
int port = 25;
string userid = "userid";
string pass = "pass";
System.Net.IPAddress address = System.Net.Dns.GetHostByName(smtpserver).AddressList[0];

//ログオンクラスを作成します
TKMP.Net.ISmtpLogon logon ;


//AUTH CRAM-MD5でログオンを行ないます
logon = new TKMP.Net.AuthCramMd5(userid , pass);

//AUTH LOGINでログオンを行ないます
//logon = new TKMP.Net.AuthLogin(userid , pass);

//AUTH PLAINでログオンを行ないます
//logon = new TKMP.Net.AuthPlain(userid , pass);

//CRAM-MD5 PLAIN LOGINの順で利用可能なものを優先してログオンを行ないます
//logon = new TKMP.Net.AuthAuto(userid , pass);

//POP Before SMTPでログオンを行ないます
//使用するにはPOPへの接続情報が必要です
//logon = new TKMP.Net.PopBeforeSMTP(popclient);

//ログオン処理は行ないません
//logon = null;



//SMTPへの接続クラスを作成
TKMP.Net.SmtpClient smtp = new TKMP.Net.SmtpClient(address , port , logon);

//サーバーへ接続
if(!smtp.Connect())
{
    System.Windows.Forms.MessageBox.Show("接続失敗");
    return ;
}

//-------ここでメール送信を行ないます----------

//サーバーから切断
smtp.Close();