ホーム > デベロッパ > SophiaFramework > BREW C++ 逆引きコード集

BREW C++ プログラミング : SophiaFramework 逆引き FAQ・コード集

SSL メール受信をする

SFXPOP3Receiver クラスの SFXPOP3Receiver::SetSSLModeSFXPOP3Receiver::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());

        }
    }
}