2017-03-20 24 views
0

私がしたいことは、自分のノードjs rest apiからメール、ユーザーのパスワードを送信することです。私はgmailのapiとapiのキーを使ってメールを送る方法を知りたい。nodejsサーバからgmail apiを使ってメールを送信する

+0

Googleは、[GmailのAPIリファレンス]を持っている(https://developers.google.com/ gmail/api/quickstart/nodejs)、node.jsからの使用方法に関するセクションそれを読んだことはありますか?どのコードを試しましたか?どこで立ち往生しましたか?私たちは、彼らがどこにいらっしゃったのか、どんな問題に遭遇したのかについて何か試したり、何かを記述したことを示さない人のためのコードを書くだけではありません。 – jfriend00

+0

私はそのコードを試していましたが、0auth idを使用してコードを実行していましたが、コードからURLを提供することで、強制的にURLを認証せずに電子メールを送信し、プロジェクトのGoogleコンソールで作成したapiキーを使用します。 –

+0

私はあなたが認証する必要があると思います。 APIキーのみを使用することはできません。 APIキーはAPIの使用状況を識別しますが、アカウントにあなたを認証しません。 – jfriend00

答えて

0

Googleは2015年にすべてのAPIのクライアントログイン(ログインとパスワード)を中止しました。ログインとパスワードを使用してGoogle APIにアクセスすることはできません。ユーザーはOauth2を使用して認証する必要があります。

APIキーは、公開データにのみアクセスするために使用されます。 Gmailはプライベートユーザーデータで、データにアクセスするにはアクセス権が必要です。

ログインとパスワードを使用する必要がある場合は、SMTP or IMAPサーバーを試してみることをおすすめします。私はノードdevではありません申し訳ありません私はあなたを助けることはできません。

0

Gmail APIを使用して認証を必要とせずにメールを送信するには、サービスアカウントを使用してjwtを使用して認証する必要があります。

コード例:ここでは

const google = require('googleapis'); 
const gmail = google.gmail('v1'); 

const key = require('./mailing-bd0ff2b11546.json')//service acount jwt auth 

    let jwtClient = new google.auth.JWT(
     key.client_email, 
     null, 
     key.private_key, 
     ['https://mail.google.com/'], 
     '<mail to suplant>' 
    ); 
    function getMessagesList(data) { 
     return new Promise((resolve, reject) => { 


      jwtClient.authorize(function (err, tokens) { 
       if (err) { 
        console.error(err); 
       } else { 
        gmail.users.messages.list({ 
         auth: jwtClient, 
         userId: 'me', 
         labelIds: 'INBOX' 
        }, (err, messageList) => { 

        ... 
        ... 
        ... 

では、ドキュメントへのリンクです:Creating a service account

stackoverflow example

関連する問題