Ответ 1
Модули Code Cloud Code теперь поддерживают отправку электронной почты через несколько поставщиков облачной почты:
Я использую Parse.com(javascript SDK), и я хочу, чтобы пользователи могли отправлять электронное письмо из моего приложения. В основном, они создают страницу с помощью приложения, а затем мне нужно разрешить им вводить список адресов электронной почты; приложение затем отправит каждому адресу ссылку на созданную им страницу.
Я могу найти что-нибудь в документации, которая говорит мне, как отправить письмо. Я могу взять список адресов электронной почты и создать электронную почту, я просто не могу понять, как ее отправить.
Возможно ли это с помощью Parse, и если да, может ли кто-нибудь указать мне в правильном направлении?
Спасибо!
Модули Code Cloud Code теперь поддерживают отправку электронной почты через несколько поставщиков облачной почты:
Я создал простой пример iOS здесь, используя Mandrill и Parse Cloud Code http://www.stlplace.com/2013/11/24/send-email-via-cloud-code-in-parse/
Вот версия андроида для ответа @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");
}
});
});
Кто-то может найти полезный пример, используя 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);
}];
Для этого нет встроенного метода. лучше всего подождать, пока Parse Cloud Code поддерживает сторонние HTTP-запросы. Я сделал быстрый макет, как вы могли бы это сделать, используя IronWorker + Ruby для отправки электронной почты, но вы, безусловно, могли бы использовать другие языки: