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()); } } }