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









