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

问题描述 投票:17回答:5

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

不过我可以在文档中找到任何告诉我如何发送邮件的内容。 我可以把电子邮件地址列表并生成电子邮件,只是不知道如何发送。

使用Parse可以做到这一点吗?

javascript parse-platform
5个回答
30
投票

Parse云代码模块现在支持通过一些云邮件提供商发送电子邮件。


8
投票

我在这里用Mandrill,和解析云代码,创建了一个简单的iOS例子。http:/www.stlplace.com20131124send-email-via-cloud-code-in-parse


5
投票

下面是@uudaddy的安卓版答案。

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", "[email protected]");
    params.put("fromName", "Source User");
    params.put("toEmail", "[email protected]");
    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);
        }
    });
}

服务器端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");
}
});
});

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");
      }
    });

});

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

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

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

                            }];

4
投票

没有原生的方法可以做到这一点,你最好的选择是等到Parse的云代码支持第三方的HTTP请求。我做了一个快速的模拟,你可以使用IronWorker+Ruby来发送邮件来实现这个目标,但你当然也可以使用其他语言。

http:/news.ycombinator.comitem?id=4506888

© www.soinside.com 2019 - 2024. All rights reserved.