C++ にて VMime を使って Gmail + OAuth で メールを送信する

C++ にて VMime を使って メールを送信する
の続きです。

アクセストークン を取得する

libcurl のときと同じです。

C 言語にて libcurl を使って Gmail + OAuth で メールを送信する

VMime でアクセストークン を設定する

VMimeのサイトに記載がある

VMime : XOAUTH2 authentication (GMail)

下記は、 XOAUTH2を使用する例

// XOAUTH2を使用する
vmime :: security :: sasl :: SASLMechanismFactory :: getInstance()->
    registerMechanism <vmime :: security :: sasl :: XOAuth2SASLMechanism>( "XOAUTH2");

// 新しいセッションを作成する
vmime :: shared_ptr <vmime :: net :: session> sess = vmime :: net :: session :: create();

// カスタムオーセンティケーターを使用する
vmime :: shared_ptr <vmime :: security :: authenticationator> xoauth2Auth =
    vmime :: make_shared <vmime :: security :: sasl :: XOAuth2SASLAuthenticator>
        (vmime :: security :: sasl :: XOAuth2SASLAuthenticator :: MODE_EXCLUSIVE);

// GMailへのSMTPSサービスを作成する
vmime :: shared_ptr <vmime :: net :: transport> tr = sess-> getTransport(
    vmime :: Utility :: url( "smtps://smtp.gmail.com:465")、xoauth2Auth
);

// アクセストークン を設定する
tr-> setProperty( "options.need-authentication"、true);
tr-> setProperty( "auth.username"、 " your-email@gmail.com ");
tr-> setProperty( "auth.accesstoken"、 "your-access-token" );

// 接続する
tr-> connect();

全体のコードは、githubに公開した。 https://github.com/ohwada/MAC_cpp_Samples/tree/master/vmime/xoauth