I'm currently building an application in Flex that utilizes SMTP Mailer
to automatically
send out emails
to the user when a particular condition is satisfied. The application checks this condition every 30 seconds. The condition is satisfied based on new records being returned from a database table.
The problem is as follows:
When the condition is first satisfied, the email is delivered
to the user with no issues.
The second time the condition is satisfied, the email is not delivered. In the smtp logs, the delivery attempt appears
to get hung up on the following line:
354 Start mail input; end with <CRLF>.<CRLF>
No error codes are present in the smtp logs, but I do trace the following event from the SMTP Mailer class:
[Event type="mailError" bubbles=false cancelable=false eventPhase=2]
When the condition is satisfied a third time, the email that was not delivered when the condition was satisfied the previous time is now delivered, along with the email for this instance.
This pattern then repeats itself, with the next email not being sent followed by two emails being sent simulatneously when the condition is met again.
The smtp server being used is Windows 2003, on an internal network. The email is being sent
to an outlook account hosted on an exchange server that is also on this internal network.
Here is the actionscript code that creates the SMTPMailer object:
public var testMail:SMTPMailer = null;
public function alertNotify()
{
Security.loadPolicyFile("crossdomain.xml");
this.testMail = new SMTPMailer("myserver.ec.local",25);
this.testMail.addEventListener(SMTPEvent.MAIL_SENT, onEmailEvent);
this.testMail.addEventListener(SMTPEvent.MAIL_ERROR, onEmailError);
this.testMail.addEventListener(SMTPEvent.DISCONNECTED, onEmailConn);
this.testMail.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onEmailError);
}
Here is the code that creates the email body and calls the method
to send the email:
public function alertUser(emailAC:ArrayCollection):void {
trace ("In alertUser() before
send, testMail.connected = " + testMail.connected.toString());
var testStr:String = " Key Location Event Type Comment Update Time ";
for each (var event:rEntity in emailAC) {
testStr = testStr + "" + event.key.toString() + "" + event.xml.address.toString() + " " +
[email protected]() + "" +
[email protected]() + "" +
[email protected]() + "" + event.xml.attribute("update-time").toXMLString() + "";
}
testStr = testStr + "";
testMail.flush();
testMail.sendHTMLMail("
[email protected]","
[email protected]","Event Notification",testStr);
}
Really not sure where the email that gets hung up is being stored until it is finally sent....
Any suggestions as
to how
to begin
to remedy this issue would be much appreciated.