sugoi internally added
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
package sugoi.mail;
|
||||
import tink.core.Future;
|
||||
import tink.core.Noise;
|
||||
import sugoi.mail.IMailer;
|
||||
import smtpmailer.Address;
|
||||
|
||||
/**
|
||||
* Send emails thru SMTP by using ben merckx's library
|
||||
* @ref https://github.com/benmerckx/smtpmailer
|
||||
*/
|
||||
class SmtpMailer implements IMailer
|
||||
{
|
||||
var m : smtpmailer.SmtpMailer;
|
||||
|
||||
public function new(){}
|
||||
|
||||
public function init(?conf:{smtp_host:String,smtp_port:Int,smtp_user:String,smtp_pass:String}) :IMailer
|
||||
{
|
||||
m = new smtpmailer.SmtpMailer({
|
||||
host: conf.smtp_host,
|
||||
port: conf.smtp_port,
|
||||
auth: {
|
||||
username: conf.smtp_user,
|
||||
password: conf.smtp_pass
|
||||
}
|
||||
});
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public function send(e:sugoi.mail.IMail,?params:Dynamic,?callback:MailerResult->Void)
|
||||
{
|
||||
var surprise = m.send({
|
||||
subject: e.getSubject(),
|
||||
/*from: e.getSender().email,
|
||||
to: Lambda.array(Lambda.map(e.getRecipients(), function(x) return smtpmailer.Address.ofString(x.email) )),
|
||||
//headers : e.getHeaders(),*/
|
||||
from: new Address({address:e.getSender().email}),
|
||||
to: Lambda.array(Lambda.map(e.getRecipients(), function(x) return new Address({address:x.email}) )),
|
||||
headers : e.getHeaders(),
|
||||
content: {
|
||||
text: e.getTextBody(),
|
||||
html: e.getHtmlBody()
|
||||
}/*,
|
||||
attachments: []*/
|
||||
});
|
||||
|
||||
|
||||
if (callback != null){
|
||||
|
||||
surprise.handle(function(s){
|
||||
|
||||
var map = new MailerResult();
|
||||
|
||||
switch(s){
|
||||
case Success(_):
|
||||
map.set("*",Success(Sent));
|
||||
|
||||
case Failure(e):
|
||||
map.set("*",Failure(GenericError(e)));
|
||||
}
|
||||
|
||||
callback(map);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user