web-dev-qa-db-ja.com

Parse.comアプリはどのようにメールを送信できますか?

Parse.com(javascript SDK)を使用していますが、ユーザーがアプリからメールを送信できるようにしたいと考えています。基本的に、彼らはアプリを使用してページを作成し、次に私は彼らがメールアドレスのリストを入力できるようにする必要があります。その後、アプリは各アドレスに、作成したページへのリンクを送信します。

ただし、電子メールの送信方法を説明しているドキュメントには何でもあります。メールアドレスのリストを取得してメールを生成できますが、送信方法がわかりません。

これはParseで可能ですか?もしそうなら、誰かが私を正しい方向に向けることができますか?

ありがとう!

17
Sharon

Parse Cloud Code Modulesは、多数のクラウドメールプロバイダーを介した電子メールの送信をサポートするようになりました。

30
nicko

ここでは、MandrillとParse Cloud Codeを使用して簡単なiOSの例を作成しました http://www.stlplace.com/2013/11/24/send-email-via-cloud-code-in-parse/

8
uudaddy

Mailgun、iOS、ParseCloudを使用した便利な例を誰かが見つけるかもしれません。

Mandrilには現在4000通の無料メールしかないので、私はMailgunを使うことにしました。

「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);

                            }];
5
hris.to

これが@uudaddyの答えの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", "[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
silentsudo

これを行うためのネイティブな方法はありません。最善の策は、ParseのクラウドコードがサードパーティのHTTPリクエストをサポートするまで待つことです。 IronWorker + Rubyを使用して電子メールを送信することで、これを実現する方法の簡単なモックアップを作成しましたが、他の言語を使用することもできます。

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

4
user94154