0
此代碼可用於Mandrill API從網站發送郵件。但問題是我無法將HTML輸入到JSON中發送到正確的電子郵件地址。看看下面的代碼:在JSON中使用JavaScript變量API
<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文件:
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":"[email protected]",
"to":[{"email":"[email protected]"}],
"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 mailaddress這是我想向其發送一條消息,該用戶在瀏覽器已經給郵件地址。但是現在我想讓「[email protected]」的值接受var mailaddress的變量。但只是在這裏輸入這個變量不起作用,因爲我認爲它不是JSON ...
我知道該程序的工作原理,因爲如果我在「to」中填寫郵件地址:[{「email」:「 [email protected]「}],手動發送併到達。試圖尋找論壇和谷歌,但無法找到這個解決方案..
UPDATE 我明白了,謝謝你的幫助。 getElementById必須在我想的函數內,所以我將代碼移動了一點......它看起來像是在下面。代碼現在正在工作,但我很好奇:這是不是很好的代碼,還是我必須定義一些東西?
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 protected]",
"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);
});
}
感謝您的答覆,但似乎這個代碼是行不通的。如果我手動填寫'到',程序將工作。例如:「to」:[{「email」:「[email protected]」}]。結構(不是JSON?)或代碼中的其他位置有問題嗎?沒有可變的定製(不是HTML輸入)程序的工作原理如前所述.. – BBspark
我不明白爲什麼它不應該工作。控制檯中是否有錯誤? – phylax
我沒有看到..這是整個問題...得到這些錯誤:{「status」:「error」,「code」: - 1,「name」:「ValidationError」,「message」:「You必須指定一個消息值「},只要我將這段代碼片段插入到程序中:var mailaddress = document.getElementById(」maila「)。value, recipients = [], recipient = {」email「:mailaddress}; recipients.push(收件人);真的很奇怪...... – BBspark