2012-09-27 104 views
16

我使用Parse.com(JavaScript SDK),我希望用戶能夠從我的應用程序發送電子郵件。基本上,他們使用應用程序創建一個頁面,然後我需要允許他們輸入一個電子郵件地址列表;該應用程序會發送每個地址鏈接到他們創建的頁面。我的Parse.com應用程序如何發送電子郵件?

雖然我可以在文檔中找到任何告訴我如何發送電子郵件的內容。我可以把電子郵件地址列表和生成電子郵件,我只是不知道如何發送它。

這是可能與解析,如果是這樣,任何人都可以指向我的方向正確嗎?

謝謝!

回答

4

沒有本地方法來做到這一點。你最好的選擇是等到Parse's Cloud Code支持第三方HTTP請求。我做的,你怎麼能做到這一點使用鐵工+紅寶石發送電子郵件快速的樣機,但你當然可以使用其他語言:通過一些雲

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

+7

我的回答停止投票。下面的應該是被接受的答案。 – user94154

30

解析雲代碼模塊現支持發送電子郵件郵件服務提供商:

+0

哪一個是最好的? :) –

+0

@ M.Y。 mandrill .. – SuperUberDuper

+0

但解析有它自己的庫發送電子郵件。他們在驗證電子郵件「打開」時發送電子郵件的方式。沒有任何方法可以訪問它? – lxknvlk

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代碼的Android版本(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"); 
} 
}); 
}); 
+0

我得到的答覆爲空 –

+0

您應該按照@ uudaddy的回答來設置服務器休息,並且從那裏開始下降。 – sector11

+0

更新我的代碼請檢查。 – sector11

5

有人可能會發現使用Mailgun,iOS和Parse Cloud的有用示例。

因爲Mandril目前只有4k免費郵件,所以我決定和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); 

          }]; 
+0

如何添加TXT和CNAME記錄?和哪裏? –

+0

您可以將它們添加到託管服務提供商管理面板中。未經購買/獲得託管,您不能使用此功能。 –

相關問題