case "mail.forward": return METHOD;
case "mail.forward2": return METHOD;
case "mail.send": return METHOD;
+ case "mail.attempt": return METHOD;
+ case "mail.later": return Later.instance;
case "mail.drop": return Drop.instance;
case "mail.bounce": return METHOD;
case "mail.my": return getSub("mail.my");
String name = JSU.toString(name0);
try {
if (name.equals("date")) { return new JSDate(args); }
- if (name.equals("mail.send") || name.equals("send")) {
+ if (name.equals("mail.send") || name.equals("send") || name.equals("mail.attempt") || name.equals("attempt")) {
+ boolean attempt = name.equals("mail.attempt") || name.equals("attempt");
JS m = (JS)a;
StringBuffer headers = new StringBuffer();
String body = "";
envelopeFrom,
envelopeTo
);
- //org.ibex.mail.protocol.SMTP.Outgoing.accept(message);
- boolean ok = org.ibex.mail.protocol.SMTP.Outgoing.attempt(message);
- if (!ok) throw new JSExn("SMTP server rejected message");
- return JSU.T;
+
+ boolean ok = false;
+ try {
+ if (attempt) {
+ org.ibex.mail.protocol.SMTP.Outgoing.attempt(message);
+ } else {
+ org.ibex.mail.protocol.SMTP.Outgoing.accept(message);
+ }
+ ok = true;
+ } catch (Exception ex) {
+ if (!attempt) Log.warn(this, ex);
+ }
+ if (!ok && !attempt) throw new JSExn("SMTP server rejected message");
+ return JSU.B(ok);
}
if (name.equals("mail.bounce")) {
return new Target() {