History: ip_app_smtp

This page describes all changes made to the ip_app_smtp package, SMTP client, since its release.


2.5 (2017-06-22, 12:22):

  • Truncated messages that contained blank line.
  • Version check was added to configuration header.

2.4 (2017-03-14 09:09):

  • Values of month and day are converted properly. psp_template_hostname is used.


  • Updated to new IP Stack 6.02.


  • Changed psp_get_host_addr() to psp_get_host_domain ( uint8_t * p_domain, uint16_t *p_length ), user needs to define the name of device that is used in hello message.
  • Outlook SMTP server does not work because it drops TLS connection (probably we use too weak a ciphersuite). Thunderbird SMTP client negotiates Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014), which is currently not supported by TLS.


  • Added handling of incoming messages during sending of MAIL content. (Stack was running out of IP buffers because messages were not handled).
  • Corrected handling of pipeline message for MAIL command (event command_abort was not sent when mail failed).
  • Added checking of TLS connection state.

 Known issues:

  • Sending of mail to Outlook SMTP servers is difficult, because anti-spam system blocks incoming emails.
  • Outlook mail account need to have POP server enabled; option POP enable must be set within account settings. In order to turn it on, login to your account, choose Options->'Connect devices and apps with POP' and enable POP
  • Some SMTP servers (active24) require a correct time to be set in an email. So psp_rtc functions must return a correct date. Gmail/Yahoo/Outlook modifies time in an email.
  • Timeout test is executed only when no TLS connection is active. This is done because TLS connections are usually tear-down on timeout without notifying the client.


  • Added STARTTLS.
  • Updated to work with new IP Stack (4.11).
  • Added extra commands: Verify and ETRN
  • Mail message now has a real date and time sent.
  • Added new recipients CC, BCC, REPLY-TO.
  • Added sending of /attachments.
  • Added delivery status notification.
  • Added Chunking support.
  • Added Pipelining support.
  • Added SIZE support.
  • New Authentication methods: CRAM-MD5, PLAIN and ANONYMOUS
  • MISRA check and code review done.


  • Initial release.