I have an automated process that is experiencing a read timeout on sending an email. Every day, this process errors out because the read timeout has expired. Please see log below. If I set the ReadTimeout property on the MailMan object to 110, will increase the timeout length from 30 seconds to 110 seconds? Do I need to adjust the ConnectionTimeout property? I want to say no because I am not experiencing a timeout on the connection. What usually triggers the read timeout? What would the remote server be processing on their end that would take more than 30 seconds? Are they validating the email recipients?
... smtpRecipients: Elapsed time: 203 millisec email_size: 30004 smtpSendData: Elapsed time: 78 millisec Sent DATA terminator Timeout waiting to read socket or accept connection timeoutMs: 30000 ReadTimeout expired, abandoning attempt to retrieve SMTP response. smtpFinalResponse: Elapsed time: 30203 millisec smtpConversation: Elapsed time: 30484 millisec ...
1) If I set the ReadTimeout property on the MailMan object to 110, will increase the timeout length from 30 seconds to 110 seconds?
Yes, this will increase the timeout length to 110 seconds.
2) Do I need to adjust the ConnectTimeout property?
No, the ConnectTimeout property only applies in making the TCP/IP connection. In other words, it determines how long to wait for the server to accept a connection request.
3) What usually triggers the read timeout?
The obvious: a response should be coming from the server, but it does not arrive in the amount of time specified by the ReadTimeout property. In this case, the SMTP client (Chilkat) is waiting for the final response after sending the MIME text (i.e. the DATA) of the email.
4) What would the remote server be processing on their end that would take more than 30 seconds? Are they validating the email recipients?
I wouldn't have any idea. It would really be dependent on the specific SMTP server implementation.