Changes between Version 20 and Version 21 of FAQ/Using YAM

May 11, 2012, 3:49:52 PM (8 years ago)
Jens Maus


  • FAQ/Using YAM

    v20 v21  
    352352And if you are still unable to send mails even via one predefined method, then you can run YAM with the DEBUG command-line option. This option will enable the internal TCP/IP debugging and output any raw output of the connection on the shell you just started YAM from. See FAQ item for more information on how to debug YAM.
     354=== When sending mail via, YAM returns an error upon terminating the connection. However, the mail will be correctly send to its recipient. ===
     355It seems that this is a problem/bug in the SMTP server implementation of the googlemail mail servers (,, ...). When sending an email over one of the SMTP servers of googlemail, the server immediately drops the connection when the client (YAM) signalled the server that it wants to quit the connection. However, the standard (RFC 2821) clearly defines that if a server receives such a QUIT command, it have to reply with a status code and afterwards drop the connection. Unfortunatley, the googlemail servers seems to not send this status code anymore if a mail was already successfully transfered. This of course, clearly violates the standard and causes YAM to drop an error/warning message about an unexpected connection drop.
     357Unfortunately, there doesn't exist any way of avoiding/supressing those warnings with YAM 2.4. However, recent versions (2.5) have an added workaround for the problem and doesn't automatically popup those warnings anymore.
     359Still, we highly suggest to send an email to the support of googlemail and let them know about the problem. Of course, feel free to cite this FAQ item in the hope that at one day googlemail developers will read it and fix their SMTP server implementation.
     361In addition to the above violation to the RFCs, the gmail servers seem to have a rather long timeout phase when communicating to SMTP clients like YAM. This means that upon sending an email it might happen that right at the end of the communication to the SMTP server of google, YAM returns an error because the gmail server didn't correctly response within the internally specified time interval within YAM. On the other hand it might be that this time interval was simply incorrectly set to a too short value. So please make sure (if you have YAM 2.5+ running) that your ".config" file has the "SocketTimeout" value right at the end of the file set to at least 30 or even higher which means that YAM will wait 30 seconds for a response from the mail server before considering the connection being broken/dropped.
     363=== When I use Genesis, Yam always uses the Genesis user to choose the account. How can I change that?  ===
     364YAM has special built in support for the Genesis TCP/IP stack by being able to query the currently active username. So it supports to automatically start YAM with the user that your Genesis TCP/IP stack is currently running. E.g. If you have Genesis configured for a user "john doe" and you have the very same username in YAM configured, it will startup automatically with that user enabled and doesn't query for any user selection or password.
     366However, if for some reasons you are not able to sync the user names of Genesis<>YAM, you can start YAM either from the command line with the option "USER <USERNAME>" or by adding the 'USER' tooltype to the YAM icon. In that case, YAM will then automatically select the specified user and just query for the password.
     368=== I am not able to abort a POP3 transfer and the whole application seems to hang, why? ===
     369YAM has been a single-threaded application until version 2.7 which uses so-called blocking socket I/O. This means, that until version 2.7 it could only process one job at a time and a single TCP/IP transfer like a POP3 or SMTP connection or transfer might lock up the whole application (even GUI operations) in case the server doesn't response. This, for example can happen if the POP3/SMTP server you are trying to connect to isn't responding properly or your connection is suddenly interrupted.
     371The reason for the GUI lockup is, that as soon as YAM is trying to connect to other server, it is fully relying on the functionality of the TCP/IP stack you are running on your operating system (e.g. Roadshow on AmigaOS4). And as YAM is still using blocking socket I/O and that the TCP/IP stack might have a large timeout for retrying a certain TCP/IP operation it suddenly can cause your YAM application to block until the TCP/IP stack decides to return from the blocking socket call.
     373Even if for most connection types and users this might not be a big issue, we know that it can become very annoying and disturbing. Especially if you are having a dail-up connection. However, we have already planned to address the issue in a future version by introducing full multi-threading together with the use of non-blocking socket I/O in YAM. Until that happens, you can also try to lower the timeout of your TCP/IP stack and/or try to shutdown the TCP/IP stack if a connection suddenly locks up YAM.
     375As mentioned earlier, since version 2.7 YAM is fully multithreaded and should not block any GUI elements during a network transfer.