Skip to content

Commit c1ff807

Browse files
committed
Fixed error handling in emails.
1 parent cd85bcb commit c1ff807

2 files changed

Lines changed: 56 additions & 9 deletions

File tree

changelog.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
0.0.17
33
========================
44

5+
- fixed error handling in emails
6+
57
========================
68
0.0.16
79
========================

mail.js

Lines changed: 54 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -486,9 +486,25 @@ Mailer.send = function(opt, messages, callback) {
486486
opt.port = 465;
487487

488488
if (!opt.server) {
489-
var err = new Error('No SMTP server configuration.');
490-
callback && callback(err);
491-
F.error(err, 'mail_smtp');
489+
const err = new Error('No SMTP server configuration.');
490+
let iscallback = false;
491+
492+
493+
if (callback) {
494+
iscallback = true;
495+
callback(err);
496+
}
497+
498+
for (let m of obj.messages) {
499+
if (m.$callback) {
500+
iscallback = true;
501+
m.$callback(err);
502+
}
503+
}
504+
505+
if (!iscallback)
506+
F.error(err, 'mail_smtp');
507+
492508
return self;
493509
}
494510

@@ -529,8 +545,17 @@ Mailer.send = function(opt, messages, callback) {
529545
if (obj.try || err.stack.indexOf('ECONNRESET') !== -1)
530546
return;
531547

532-
if (!obj.try && !is)
533-
F.error(err, 'mail_smtp', opt.server);
548+
if (!obj.try && !is) {
549+
let iscallback = false;
550+
for (let m of obj.messages) {
551+
if (m.$callback) {
552+
iscallback = true;
553+
m.$callback(err);
554+
}
555+
}
556+
if (!iscallback)
557+
F.error(err, 'mail_smtp', opt.server);
558+
}
534559

535560
if (obj === F.temporary.smtp[opt.server])
536561
delete F.temporary.smtp[opt.server];
@@ -542,8 +567,17 @@ Mailer.send = function(opt, messages, callback) {
542567

543568
Mailer.destroy(obj);
544569

545-
if (!obj.try && !obj.callback)
546-
F.error(err, 'mail_smtp', opt.server);
570+
if (!obj.try && !obj.callback) {
571+
let iscallback = false;
572+
for (let m of obj.messages) {
573+
if (m.$callback) {
574+
iscallback = true;
575+
m.$callback(err);
576+
}
577+
}
578+
if (!iscallback)
579+
F.error(err, 'mail_smtp', opt.server);
580+
}
547581

548582
obj.callback && obj.callback(err);
549583
obj.callback = null;
@@ -561,8 +595,17 @@ Mailer.send = function(opt, messages, callback) {
561595
var err = F.TUtils.httpstatus(408);
562596
Mailer.destroy(obj);
563597

564-
if (!obj.try && !obj.callback)
565-
F.error(err, 'mail_smtp', opt.server);
598+
if (!obj.try && !obj.callback) {
599+
let iscallback = false;
600+
for (let m of obj.messages) {
601+
if (m.$callback) {
602+
iscallback = true;
603+
m.$callback(err);
604+
}
605+
}
606+
if (!iscallback)
607+
F.error(err, 'mail_smtp', opt.server);
608+
}
566609

567610
obj.callback && obj.callback(err);
568611
obj.callback = null;
@@ -892,6 +935,8 @@ Mailer.$send = function(obj, options, autosend) {
892935

893936
if (obj.messages.length) {
894937

938+
console.log(obj);
939+
895940
F.error(err, 'SMTP error');
896941

897942
// a problem

0 commit comments

Comments
 (0)