通过GMail API从我的Javascript应用程序发送电子邮件-邮件出现在GMail发送列表中,但不是';发送到目的地的电子邮件地址

通过GMail API从我的Javascript应用程序发送电子邮件-邮件出现在GMail发送列表中,但不是';发送到目的地的电子邮件地址,javascript,gmail-api,Javascript,Gmail Api,我一直在编写一个通过RESTAPI与GMail集成的客户端(Chrome浏览器)应用程序。我的应用程序是用Javascript/Angular编写的,大部分GMail集成工作正常。它可以从GMail获取电子邮件、个人资料、标签等 我无法发送我创建的电子邮件。但是,我尝试发送的电子邮件确实会出现在GMail发送列表中,如果我通过添加“收件箱”标签修改电子邮件,它们也会出现在GMail收件箱中。但是没有一封邮件能到达目的地。我一直在测试几个电子邮件帐户——Hotmail、Yahoo和另一个GMail

我一直在编写一个通过RESTAPI与GMail集成的客户端(Chrome浏览器)应用程序。我的应用程序是用Javascript/Angular编写的,大部分GMail集成工作正常。它可以从GMail获取电子邮件、个人资料、标签等

我无法发送我创建的电子邮件。但是,我尝试发送的电子邮件确实会出现在GMail发送列表中,如果我通过添加“收件箱”标签修改电子邮件,它们也会出现在GMail收件箱中。但是没有一封邮件能到达目的地。我一直在测试几个电子邮件帐户——Hotmail、Yahoo和另一个GMail帐户。电子邮件从未发送到目的地——我检查过收件箱、垃圾邮件等

我的代码在下面。。。首先运行“initializeGMailInterface”功能(通过用户界面)进行授权,然后运行“sendEmail”功能(也通过用户界面)。代码似乎与我所看到的示例以及谷歌为其RESTAPI提供的文档保持一致。身份验证似乎工作正常-正如我提到的,我能够获取电子邮件等

如何将电子邮件发送到目的地

var CLIENT_ID = '853643010367revnu8a5t7klsvsc5us50bgml5s99s4d.apps.googleusercontent.com';
var SCOPES = ['https://mail.google.com/', 'https://www.googleapis.com/auth/gmail.send', 'https://www.googleapis.com/auth/gmail.modify', 'https://www.googleapis.com/auth/gmail.labels'];

function handleAuthResult(authResult) {
    if (authResult && !authResult.error) {
        loadGmailApi();
    }
}

$scope.initializeGMailInterface = function() {
    gapi.auth.authorize({
        client_id: CLIENT_ID,
        scope: SCOPES,
        immediate: true
    }, handleAuthResult);
};

function loadGmailApi() {
    gapi.client.load('gmail', 'v1', function() {
        console.log("Loaded GMail API");
    });
}

$scope.sendEmail = function() {
    var content     = 'HELLO';
    // I have an email account on GMail.  Lets call it 'theSenderEmail@gmail.com'
    var sender      = 'theSenderEmail@gmail.com';
    // And an email account on Hotmail.  Lets call it 'theReceiverEmail@gmail.com'\
    // Note: I tried several 'receiver' email accounts, including one on GMail.  None received the email.
    var receiver    = 'theReceiverEmail@hotmail.com';
    var to          = 'To: '   +receiver;
    var from        = 'From: ' +sender;
    var subject     = 'Subject: ' +'HELLO TEST';
    var contentType = 'Content-Type: text/plain; charset=utf-8';
    var mime        = 'MIME-Version: 1.0';

    var message = "";
    message +=   to             +"\r\n";
    message +=   from           +"\r\n";
    message +=   subject        +"\r\n";
    message +=   contentType    +"\r\n";
    message +=   mime           +"\r\n";
    message +=    "\r\n"        + content;

    sendMessage(message, receiver, sender);
};

function sendMessage(message, receiver, sender) {
    var headers = getClientRequestHeaders();
    var path = "gmail/v1/users/me/messages?key=" + CLIENT_ID;
    var base64EncodedEmail = btoa(message).replace(/\+/g, '-').replace(/\//g, '_');
    gapi.client.request({
        path: path,
        method: "POST",
        headers: headers,
        body: {
            'raw': base64EncodedEmail
        }
    }).then(function (response) {

    });
}

var t = null;
function getClientRequestHeaders() {
    if(!t) t = gapi.auth.getToken();
    gapi.auth.setToken({token: t['access_token']});
    var a = "Bearer " + t["access_token"];
    return {
        "Authorization": a,
        "X-JavaScript-User-Agent": "Google APIs Explorer"
    };
}
您的代码正在执行一个错误。改为执行以下操作:


“emailJS”是从Javascript发送电子邮件的一个很好的解决方案

EmailJS仅帮助使用客户端技术发送电子邮件。不需要服务器

此外,您可以轻松添加附件、要求验证码验证、切换

在不更改代码的情况下,查看电子邮件服务的历史记录

电子邮件请求等

var path = "gmail/v1/users/me/messages/send?key=" + CLIENT_ID;