C#.NET
public void Open()
{
string server = "mail.example.jp";
int port = 993;
string userid = "userid";
string pass = "pass";
TKMP.Net.IPopLogon logon = new TKMP.Net.BasicPopLogon(userid, pass);
TKMP.Net.PopClient pop = new TKMP.Net.PopClient(logon, server, port);
pop.AuthenticationProtocol = TKMP.Net.AuthenticationProtocols.SSL ;
pop.CertificateValidation += new TKMP.Net.CertificateValidationHandler(pop_CertificateValidation);
if (!pop.Connect())
{
System.Windows.Forms.MessageBox.Show("接続失敗");
return;
}
int mailcount = pop.MailDatas.Length;
System.Windows.Forms.MessageBox.Show("着信メールは " + mailcount.ToString() + " 件です");
pop.Close();
}
private void pop_CertificateValidation(object sender, TKMP.Net.CertificateValidationArgs e)
{
e.Cancel = false;
}
VB.NET
Public Sub Open()
Dim server As String = "mail.example.jp"
Dim port As Integer = 993
Dim userid As String = "userid"
Dim pass As String = "pass"
Dim logon As New TKMP.Net.BasicPopLogon(userid, pass)
Dim pop As New TKMP.Net.PopClient(logon, server, port)
pop.AuthenticationProtocol = TKMP.Net.AuthenticationProtocols.SSL
AddHandler pop.CertificateValidation, AddressOf pop_CertificateValidation
If Not pop.Connect() Then
System.Windows.Forms.MessageBox.Show("接続失敗")
Return
End If
Dim mailcount As Integer = pop.MailDatas.Length
System.Windows.Forms.MessageBox.Show(("着信メールは " + mailcount.ToString() + " 件です"))
pop.Close()
End Sub
Private Sub pop_CertificateValidation(ByVal sender As Object, ByVal e As TKMP.Net.CertificateValidationArgs)
e.Cancel = False
End Sub
VB.NETのコードはC#.NETを元に「
C#.NET to VB.NET Translator」によって作成したものです
ログオン処理にAPOPを使用するとパスワードについては暗号化されますが、実際のメールの内容は暗号化されないままになってしまいます。この問題を解決するために、POP over SSL/TLSという手法を使用します。
幾つかの点に注意すれば、TKMPでは特に難しい設定も無く実装することが可能です。プログラムの手順としては、TKMP.Net.PopClientクラスでConnectメソッドを実行する前にAuthenticationProtocolプロパティに使用する暗号化の方法を指定するだけです。以下のサンプルでは、SSLでPOPサーバーと接続するようにしています。また、暗号化が使用できるかわからないときにAuthenticationProtocols.TryTLSを指定することで、POPサーバーがPOP over TLSに対応している時のみ暗号化通信を行うことも可能です。
実際に暗号化する場合の注意点は
・POPサーバーがPOP over SSL/TLSに対応していること
・POP over SSLを使用する場合は通常ポート番号は993になる
・POPサーバーの証明書の検証に失敗した場合に独自に検証する必要がある