<div dir="auto">Thanks Marc and Leonard. </div><div dir="auto"><br></div><div dir="auto">/Frank</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Wed. 13 jan 2021 20:59, Leonard B <<a href="mailto:leonard.boyce@lucidlayer.com">leonard.boyce@lucidlayer.com</a>> wrote :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">Hi Frank,<br>
<br>
There are basically 2 classes of errors.<br>
<br>
1. Errors which are derived from the delivery process. These would include<br>
  a) network errors (nxdomain etc)<br>
  b) mailboxes not existing/disabled etc (response to RCPT TO command.<br>
Be aware that many servers do *not* follow the RFC and will lie)<br>
  c) the dreaded 'blocking' of you connection for whatever reason the<br>
remote server decides to use<br>
<br>
2. 'soft bounce' errors:<br>
  These occur when certain servers, eg outlook, will accept an email<br>
for delivery, and then email you back to tell you about some type of<br>
error.<br>
  You'd need to have a server receiving mail to receive the 'soft'<br>
errors since they are email back to you and not part of the SMTP<br>
transaction.<br>
<br>
There is a 3rd class of error (Yahoo/AOL and friends):<br>
Their servers will say that the mailbox exists (in response to RCPT<br>
TO:) and then tell you a mailbox does not exist _after you send your<br>
DATA_.<br>
<br>
Kind regards,<br>
Leonard<br>
<br>
On Wed, Jan 13, 2021 at 1:31 PM Frank Muller <<a href="mailto:frank.muller.erl@gmail.com" target="_blank">frank.muller.erl@gmail.com</a>> wrote:<br>
><br>
> Thanks for the pointers Marc.<br>
><br>
> Do I need to implement the server part to check for errors? Can’t the gen_smtp “client” be notified in case of misspelled address (or unresolved domain, MX, etc.)?<br>
><br>
> /Frank<br>
><br>
> Wed. 13 jan 2021 10:25, Marc Worrell <<a href="mailto:marc@worrell.nl" target="_blank">marc@worrell.nl</a>> wrote :<br>
>><br>
>> Hi Frank,<br>
>><br>
>> Yes, gen_smtp can report failures that happen during communication with the remote smtp server.<br>
>> Will also report failures if it can’t resolve the domain or find a MX server.<br>
>><br>
>> Late bounces (sent by the remote mail agent) must be handled by your own code.<br>
>><br>
>> In Zotonic we have an example of handling such bounces.<br>
>><br>
>> Check for our mail sending code (which also uses mnesia for queueing):<br>
>><br>
>> <a href="https://github.com/zotonic/zotonic/blob/master/apps/zotonic_core/src/smtp/z_email_server.erl" rel="noreferrer" target="_blank">https://github.com/zotonic/zotonic/blob/master/apps/zotonic_core/src/smtp/z_email_server.erl</a><br>
>><br>
>> And for receiving email, including parsing and handling of bounce messages:<br>
>><br>
>> <a href="https://github.com/zotonic/zotonic/tree/master/apps/zotonic_listen_smtp/src" rel="noreferrer" target="_blank">https://github.com/zotonic/zotonic/tree/master/apps/zotonic_listen_smtp/src</a><br>
>><br>
>> Cheers,<br>
>><br>
>> Marc<br>
>><br>
>><br>
>> On 13 Jan 2021, at 09:18, Frank Muller <<a href="mailto:frank.muller.erl@gmail.com" target="_blank">frank.muller.erl@gmail.com</a>> wrote:<br>
>><br>
>> Hi everyone<br>
>><br>
>> I’m considering using gen_smtp (<a href="https://github.com/gen-smtp/gen_smtp" rel="noreferrer" target="_blank">https://github.com/gen-smtp/gen_smtp</a>) in one of my apps.<br>
>><br>
>> Question: is there a way to be notified on failed delivery message if for example the destination email address was misspelled?<br>
>><br>
>> Thanks<br>
>> /Frank<br>
>><br>
>><br>
</blockquote></div></div>