首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在JSON中使用JavaScript变量

在JSON中使用JavaScript变量
EN

Stack Overflow用户
提问于 2014-04-20 18:13:50
回答 1查看 1.6K关注 0票数 0

此代码可用于Mandrill API,用于从网站发送邮件。但问题是,我无法将HTML输入到JSON以发送到正确的电子邮件地址。查看下面的代码:

代码语言:javascript
运行
复制
<head>
    <script type="text/javascript" src="https://mandrillapp.com/api/docs/js/mandrill.js"></script>
    <script type="text/javascript" src="send-email.js"></script>
</head>
<body>
    <input type="text" value="e-mail" id="maila"/>
    <button onclick="sendTheMail(); return false;">Send the Mail</button>
    <pre id="response"></pre>
</body>

这是HTML,在输入字段中键入要发送的邮件地址。

然后我有以下.js文件:

代码语言:javascript
运行
复制
function log(obj) {
    $('#response').text(JSON.stringify(obj));
}

var m = new mandrill.Mandrill('API-KEY');

var mailaddress = document.getElementById("maila").value;

var params = {
    "message": {
        "from_email":"from@email.com",
        "to":[{"email":"to@email.com"}],
        "subject": "Sending you a mail",
        "html": "Text for the body of the mail",
    }
};

function sendTheMail() {

    m.messages.send(params, function(res) {
        log(res);
    }, function(err) {
        log(err);
    });
}

在这里,我得到var邮件地址,这是我想要发送消息的邮件地址,用户已经在浏览器中给出了这个地址。但是现在我希望值"to@email.com“接受var邮件地址的变量。但是在这里输入这个变量是行不通的,因为我认为它不是JSON.

我知道这个程序可以工作,因为如果我在“to”:{“to@email.com”}中填写了一个邮件地址,它就会手动发送和到达。试图搜索论坛和谷歌,但没有找到解决办法。

更新我收到了,谢谢你的帮助。getElementById必须在我认为的函数中,所以我移动了一些代码.好像在下面。代码现在起作用了,但我很好奇:这是一个很好的编码,还是我必须要做的事情?

代码语言:javascript
运行
复制
function log(obj) {
    $('#response').text(JSON.stringify(obj));
}

var m = new mandrill.Mandrill('API-KEY');


function sendTheMail() {
// Send the email!
var mailaddress = document.getElementById("maila").value,
recipient = [{"email": String(mailaddress)}];
var params = {
    "message": {
        "from_email":"email@gmail.com",
        "to": recipient,
        "subject": "Sending a text email from the Mandrill API",
        "text": "I'm learning the Mandrill API at Codecademy.",
        "autotext": true
    }
};
    m.messages.send(params, function(res) {
        log(res);
    }, function(err) {
        log(err);
    });
}
EN

回答 1

Stack Overflow用户

发布于 2014-04-20 18:16:09

代码语言:javascript
运行
复制
var
  mailaddress = document.getElementById("maila").value,
  recipients = [],
  recipient = { "email": mailaddress };

recipients.push(recipient);

var params = {
  "message": {
    "from_email": "from@email.com",
    "to": recipients,
    "subject": "Sending you a mail",
    "html": "Text for the body of the mail",
  }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23185967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档