X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fmail%2Ftarget%2FScript.java;h=6a7395afaf87c662be2e56e89163cdda1e7f7479;hb=8f31ec912eedb029222591cf94c182a262a719a7;hp=2f00ca48423bffe63e56546c43fdaaf6c0c51435;hpb=99f99e0f611f5774ea6d231ecf4c6c8b6632ed00;p=org.ibex.mail.git diff --git a/src/org/ibex/mail/target/Script.java b/src/org/ibex/mail/target/Script.java index 2f00ca4..6a7395a 100644 --- a/src/org/ibex/mail/target/Script.java +++ b/src/org/ibex/mail/target/Script.java @@ -115,6 +115,8 @@ public class Script extends Target { 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"); @@ -137,7 +139,8 @@ public class Script extends Target { 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 = ""; @@ -160,10 +163,20 @@ public class Script extends Target { 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() {