无法使用 Parse Cloud Code 和 Mandrill 发送电子邮件
Posted
技术标签:
【中文标题】无法使用 Parse Cloud Code 和 Mandrill 发送电子邮件【英文标题】:Can't send an email with Parse Cloud Code and Mandrill 【发布时间】:2014-09-18 09:38:49 【问题描述】:刚接触编码,以前从未使用过 Cloud Code。
当有人使用 Parse Cloud Code 在我的网页上以表单形式提交他们的电子邮件但我无法让它工作时,我需要发送一封确认电子邮件。我正在使用 Mandrill 云模块发送电子邮件。
我的问题是 -
a) 我是否正确调用云函数? b) 唯一改变的变量是人员的电子邮件地址。我是否正确传递了该变量?
示例代码真的很有帮助。
谢谢
这是我的云代码:
Parse.Cloud.define("introEmail", function(request, response)
var Mandrill = require('mandrill');
Mandrill.initialize('*************');
mandrill.sendEmail(
message:
text: "Hello!",
subject: "Thanks for Signing Up!",
from_email: "Test@Test.com",
from_name: "Chad",
to: [
email: request.params.Address,
name: ""
]
,
async: true
,
success: function(httpResponse) response.success("Email sent!"); ,
error: function(httpResponse) response.error("Uh oh, something went wrong");
);
);
这是我的 JS 代码:
$(".input-group-btn").click(function()
console.log("Notify Me");
var Address = $(".form-control").val();
var Email = Parse.Object.extend("Email");
var email = new Email();
email.set("Address", Address);
console.log(Address);
email.save(null,
success: function(email)
console.log('New object created with objectId: ' + email.id);
Parse.Cloud.run(introEmail,Address)
,
error: function(email, error)
alert('Could not accept email address: ' + error.message);
);
);
【问题讨论】:
【参考方案1】:a) 使用 Parse.Cloud.run() 调用 Cloud 函数,但是,您必须传递名称、数据和选项。它们是“introEmail”(云函数的名称)、变量 Address: $(".form-control").val() 和成功/错误处理程序。
b)查看
Parse.Cloud.define("introEmail", function(request, response)
var mandrill = require("mandrill");
mandrill.initialize('*************');
mandrill.sendEmail(
message:
text: "Hello!",
subject: "Thanks for Signing Up!",
from_email: "Test@Test.com",
from_name: "Test",
to: [
email: request.params.Address,
name: ""
]
,
async: true
,
success: function(httpResponse) response.success("Email sent!"); ,
error: function(httpResponse) response.error("Uh oh, something went wrong");
);
);
这是客户端的 JS:
$(".input-group-btn").click(function()
console.log("Notify Me");
var Address = $(".form-control").val();
var Email = Parse.Object.extend("Email");
var email = new Email();
email.set("Address", Address);
console.log(Address);
email.save(null,
success: function(email)
// Execute any logic that should take place after the object is saved.
console.log('New object created with objectId: ' + email.id);
// Invoke our cloud function, using the phone number in the text field
Parse.Cloud.run('introEmail',
Address: $(".form-control").val()
,
// Success handler
success: function(message)
alert('Success: ' + message);
,
// Error handler
error: function(message)
alert('Error: ' + message);
);
);
);
【讨论】:
以上是关于无法使用 Parse Cloud Code 和 Mandrill 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
向用户添加数据,然后使用 Parse Cloud Code 保存它们
使用 Parse Code Cloud Javascript 函数更改 Parse 列的值