我的Parse.com应用程序如何发送电子邮件?

Sha*_*ron 17 javascript parse-platform

我正在使用Parse.com(javascript SDK),我希望用户能够从我的应用程序发送电子邮件.基本上,他们使用应用程序创建页面,然后我需要允许他们输入电子邮件地址列表; 然后,应用程序将向每个地址发送一个指向他们创建的页面的链接.

我可以在文档中找到告诉我如何发送电子邮件的任何内容.我可以获取电子邮件地址列表并生成电子邮件,我只是无法弄清楚如何发送它.

Parse有可能吗?如果是这样,有人能指出我正确的方向吗?

谢谢!

小智 30

解析云代码模块现在支持通过许多云邮件提供商发送电子邮件:

  • 顺便说一句,链接中的所有书签都已过时 (3认同)

uud*_*ddy 8

我在这里创建了一个简单的iOS示例,使用Mandrill和Parse Cloud Code http://www.stlplace.com/2013/11/24/send-email-via-cloud-code-in-parse/


sil*_*udo 5

这是@ududdy的答案的Android版本

public void sendMail(View view) {
    Map<String, String> params = new HashMap<>();
    params.put("text", "Sample mail body");
    params.put("subject", "Test Parse Push");
    params.put("fromEmail", "someone@example.com");
    params.put("fromName", "Source User");
    params.put("toEmail", "other@example.com");
    params.put("toName", "Target user");
    ParseCloud.callFunctionInBackground("sendMail", params, new FunctionCallback<Object>() {
        @Override
        public void done(Object response, ParseException exc) {
            Log.e("cloud code example", "response: " + response);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

服务器端JS代码(main.js)解析云

Parse.Cloud.define("sendMail", function(request, response) {
var Mandrill = require('mandrill');
Mandrill.initialize('12AkxxxxxxxxxxxxxxrZEg');

Mandrill.sendEmail({
message: {
text: request.params.text,
subject: request.params.subject,
from_email: request.params.fromEmail,
from_name: request.params.fromName,
to: [
{
email: request.params.toEmail,
name: request.params.toName
}
]
},
async: true
},{
success: function(httpResponse) {
console.log(httpResponse);
response.success("Email sent!");
},
error: function(httpResponse) {
console.error(httpResponse);
response.error("Uh oh, something went wrong");
}
});
});
Run Code Online (Sandbox Code Playgroud)


hri*_*.to 5

有人可能会发现使用Mailgun,iOS和Parse Cloud的有用示例.

我决定和Mailgun一起去,因为Mandril目前只有4k免费邮件.

请注意,您必须有权访问您的域名才能设置"TXT"和"CNAME"记录,以证明您是域名所有者的Mailgun.

云代码:

// Use Parse.Cloud.define to define as many cloud functions as you want.
// For example:
Parse.Cloud.define("hello", function(request, response) {
  response.success("Hello world!");
});

Parse.Cloud.define("mailSend", function(request, response) {

    var Mailgun = require('mailgun');
    Mailgun.initialize('DOMAIN_NAME', 'API_KEY');

    Mailgun.sendEmail({
      to: request.params.target,
      from: request.params.originator,
      subject: request.params.subject,
      text: request.params.text
    }, {
      success: function(httpResponse) {
        console.log(httpResponse);
        response.success("Email sent!");
      },
      error: function(httpResponse) {
        console.error(httpResponse);
        response.error("Uh oh, something went wrong");
      }
    });

});
Run Code Online (Sandbox Code Playgroud)

现在你的ObjC项目的某个地方:

[PFCloud callFunctionInBackground:@"mailSend"
                   withParameters:@{
                                    @"target": @"target@mail.com",
                                    @"originator": @"from@mail.com",
                                    @"subject": @"Hey There",
                                    @"text": @"This is your iOS originated mail"
                                    }
                            block:^(NSString *result, NSError *error){

                                NSLog(@"error %@", error);
                                NSLog(@"result %@", result);

                            }];
Run Code Online (Sandbox Code Playgroud)


use*_*154 4

没有本地方法可以做到这一点。最好的选择是等到 Parse 的 Cloud Code 支持第 3 方 HTTP 请求。我制作了一个快速模型,展示了如何使用 IronWorker + Ruby 发送电子邮件来完成此任务,但您当然可以使用其他语言:

http://news.ycombinator.com/item?id=4506888

  • 停止为我的答案投票。下面的应该是公认的答案。 (7认同)