SSL メール送信をする
SFXSMTPSender クラスの SFXSMTPSender::SetSSLMode 、 SFXSMTPSender::SetTrustMode 、 SFXSMTPSender::SetAuthorization を使って、SSL メール送信を行います。
class MyClass { private: SFXSMTPSender _sender; CALLBACK_DECLARE_SFXSMTPSENDER(SMTPCallback) public: Void Start(Void); }; // 太字の部分を追加 Void MyClass::Start(Void) { SFCError error; SFXMailMessage message; // メール ヘッダーに From フィールドを設定する message.SetFromField("[email protected]"); // メール ヘッダーに To フィールドを追加する message.AddToField("[email protected]"); message.AddToField("[email protected]"); // メール ヘッダーに Subject フィールドを設定する message.SetSubjectField("Mail Subject"); // メール メッセージの本文を設定する message.SetBody("Mail test\r\nThis mail is sent by SFXSMTPSender.\r\n"); // SMTP サーバーの IP アドレスとポート番号を指定する // ( ドメインは自動解決される ) _sender.SetServer(SFXSocketAddress("smtpserver.example.com:465")); // SSL メール送信の設定 _sender.SetSSLMode(true); // SSL 接続モードの設定 // 証明書の検証モードの設定 _sender.SetTrustMode(SSL_TRUST_MODE_FAIL); // SMTP 認証モードの設定 _sender.SetAuthorization(AUTH_CRAM_MD5,"username","password"); // メールを送信する。送信が完了すると SMTPCallback 関数が呼び出される if ((error = _sender.SendMessage(&message, CALLBACK_FUNCTION(SMTPCallback))) != SFERR_NO_ERROR) { // error が SFERR_NO_ERROR でない場合はコールバックが戻らないので、 // ここでエラー処理をする } } // メール送信が完了したときに呼び出されるコールバック関数 CALLBACK_IMPLEMENT_SFXSMTPSENDER(MyClass, SMTPCallback, error) { if (error == SFERR_NO_ERROR) { TRACE("メールを送信しました。"); } else { TRACE("メール送信に失敗しました。 %d", error); } }