POP3 メール受信をする
SFXPOP3Receiver クラスを使ってメール受信を行います。
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:110")); // メールを受信する。受信が完了すると、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()); } } }