@@ -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