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("fromaddress@example.com");
// メール ヘッダーに To フィールドを追加する
message.AddToField("toaddress1@example.com");
message.AddToField("toaddress2@example.com");
// メール ヘッダーに 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);
}
}









