SSL メール受信をする
SFXPOP3Receiver クラスの SFXPOP3Receiver::SetSSLMode 、 SFXPOP3Receiver::SetTrustMode を使って、SSL メール受信を行います。
class MyClass {
private:
SFXPOP3Receiver _receiver;
CALLBACK_DECLARE_SFXPOP3RECEIVER(POP3Callback)
public:
Void Start(Void);
};
// 太字の部分を追加
Void MyClass::Start(Void)
{
// ユーザー名とパスワードを設定する
_receiver.SetAccount("user", "password");
// POP3 サーバーの IP アドレスとポート番号を指定する
// ( ドメインは自動解決される )
_receiver.SetServer(SFXSocketAddress("pop3server.example.com:995"));
// SSL メール受信の設定
_receiver.SetSSLMode(true); // SSL 接続モードの設定
// 証明書の検証モードの設定
_receiver.SetTrustMode(SSL_TRUST_MODE_FAIL);
// メールを受信する。受信が完了すると、POP3Callback 関数が呼び出される
if ((error = _receiver.Receive(CALLBACK_FUNCTION(POP3Callback)))
!= SFERR_NO_ERROR) {
// error が SFERR_NO_ERROR でない場合はコールバックが戻らないので、
// ここでエラー処理をする
}
}
// メール受信が完了したときに呼び出されるコールバック関数
CALLBACK_IMPLEMENT_SFXPOP3RECEIVER(MyClass, POP3Callback, error)
{
SInt32 i;
if (error == SFERR_NO_ERROR) {
//受信に成功した場合
// 受信したメールの配列 ( SFXArray ) を取得する
const SFXArray<SFXPOP3Receiver::MailInfoPtr>& mailArray =
receiver.GetReceivedMailArray();
// メール数を表示する
TRACE("received %d mails", mailArray.GetSize());
for (i = 0; i < mailArray.GetSize() ; i++) {
SFXPOP3Receiver::MailInfoPtr minfo = mailArray[i];
// 左から順に、メール サイズ、UIDL、メール ヘッダーとメール本文
// を含む メール メッセージを含むメール本体を表示する
TRACE("%d, %s, %s", minfo->size,
minfo->uidl.GetCString(),
minfo->mail.GetCString());
}
}
}









