Thursday, January 15, 2015

SMTP reply code and trouble shooting

for me and for everyone, who needs it



Reply codes grouped by command

Command Code Description
connect
220 <domain> Service ready
421 <domain> Service not available, closing transmission channel
HELO
250 Requested mail action okay, completed
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
504 Command parameter not implemented
521 <domain> does not accept mail [rfc1846]
421 <domain> Service not available, closing transmission channel
EHLO
250 Requested mail action okay, completed
550 Not implemented
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
504 Command parameter not implemented
421 <domain> Service not available, closing transmission channel
MAIL
250 Requested mail action okay, completed
552 Requested mail action aborted: exceeded storage allocation
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
421 <domain> Service not available, closing transmission channel
RCPT
250 Requested mail action okay, completed
251 User not local; will forward to <forward-path>
550 Requested action not taken: mailbox unavailable
551 User not local; please try <forward-path>
552 Requested mail action aborted: exceeded storage allocation
553 Requested action not taken: mailbox name not allowed
450 Requested mail action not taken: mailbox unavailable
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
503 Bad sequence of commands
521 <domain> does not accept mail [rfc1846]
421 <domain> Service not available, closing transmission channel
DATA
354 Start mail input; end with <CRLF>.<CRLF>
451 Requested action aborted: local error in processing
554 Transaction failed
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
503 Bad sequence of commands
421 <domain> Service not available, closing transmission channel
received data
250 Requested mail action okay, completed
552 Requested mail action aborted: exceeded storage allocation
554 Transaction failed
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
RSET
200 (nonstandard success response, see rfc876)
250 Requested mail action okay, completed
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
504 Command parameter not implemented
421 <domain> Service not available, closing transmission channel
SEND
250 Requested mail action okay, completed
552 Requested mail action aborted: exceeded storage allocation
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
502 Command not implemented
421 <domain> Service not available, closing transmission channel
SOML
250 Requested mail action okay, completed
552 Requested mail action aborted: exceeded storage allocation
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
502 Command not implemented
421 <domain> Service not available, closing transmission channel
SAML
250 Requested mail action okay, completed
552 Requested mail action aborted: exceeded storage allocation
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
502 Command not implemented
421 <domain> Service not available, closing transmission channel
VRFY
250 Requested mail action okay, completed
251 User not local; will forward to <forward-path>
550 Requested action not taken: mailbox unavailable
551 User not local; please try <forward-path>
553 Requested action not taken: mailbox name not allowed
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
502 Command not implemented
504 Command parameter not implemented
421 <domain> Service not available, closing transmission channel
EXPN
250 Requested mail action okay, completed
550 Requested action not taken: mailbox unavailable
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
502 Command not implemented
504 Command parameter not implemented
421 <domain> Service not available, closing transmission channel
HELP
211 System status, or system help reply
214 Help message
500 Syntax error, command unrecognised
501 Syntax error in parameters or arguments
502 Command not implemented
504 Command parameter not implemented
421 <domain> Service not available, closing transmission channel
NOOP
200 (nonstandard success response, see rfc876)
250 Requested mail action okay, completed
500 Syntax error, command unrecognised
421 <domain> Service not available, closing transmission channel
QUIT
221 <domain> Service closing transmission channel
500 Syntax error, command unrecognised
TURN
250 Requested mail action okay, completed
502 Command not implemented
500 Syntax error, command unrecognised
503 Bad sequence of commands


Error Troubleshooting
• Rejected by server Message was rejected by remote SMTP server due to their antispam settings.
Most of large SMTP servers do not accept mail from home computers (with dial-up or cable IP addresses). You need to send mail via external SMTP server, it's highly recommended. Please open "Settings" / "Common Settings" / "SMTP" and add SMTP server of your Internet Service Provider (ISP) or hosting service.
• No such address
• User not local
It usually happens if you try to send mail via an external SMTP server, but do not provide the correct username / password when it's required. Please open "Settings" / "Common Settings" / "SMTP", double click at the server name and change "Authentication type". The most popular type is ESMTP. CRAM and DIGEST are used at the less number of servers, POP before SMTP is too old, not recommended to use.
Note for hotmail.com — please check HELO value. It's very important for them. Open "Settings" / "Common Settings" / "Mailer" and check value of HELO there. It must be the same as at www.massmailsoftware.com/ip.
• Delivering... forever If you see "Delivering..." for a long time (say more than a minute), you need to check the following:
1. Your message is really large and Atomic Mail Sender need much time to deliver it. Or the outgoing mail scanner blocked it. Check your antivirus.
2. Atomic Mail Sender is completely blocked by your antivirus or firewall and can not access Internet. Please check the settings of these programs.
• Error 450: Requested mail action not taken: mailbox unavailable. SMTP server could not access a mailbox to deliver your message. This could be caused by a process on the remote server tidying up the mailbox, or the remote mailbox could be corrupt, or the remote mailbox may be stored on another server which is currently offline, or the network connection went down while sending, or the remote mail server does not want to accept mail from your server for some reason (IP address, blacklisting, etc..). The next attempt to send by your server may prove successful.
• Error 451: Requested action aborted: local error in processing. This error is usually due to overloading at your ISP or your SMTP relaying service from too many messages. The next attempt to send by your server may prove successful.
• Error 500: Syntax error, command unrecognized. Your antivirus/firewall interfering with incoming and/or outgoing SMTP communications. Configure your antivirus/firewall software options to solve the problem.
• Error 501: Syntax error in parameters or arguments. Invalid email addresses or an invalid domain name recipient. Error can indicate bad connection.
• Error 503: Bad sequence of commands or this mail server requires authentication. Error, particularly if repeated, indicates bad connection. SMTP Reply Code 503 is more often an indicator that the SMTP server you are trying to use requires authentication and you tried to send a message without authentication (username + password). Check "Common settings" to verify authentication settings (mostly ESMTP authentication is used) for this server.
• Error 512: The host server for the recipient’s domain name cannot be found (DNS error). One of the servers on the way to the destination has a DNS problem or does not like the recipient email address. Check the recipient email address for incorrect domain name (misspelt domain names or non-existent domain names).
• Error 513: Address type is incorrect or authentication required. Verify that email address of the recipient is formatted correctly and resend the message. Another reason could be that you need to authenticate to the mail server before being able to send your message (SMTP authentication).
• Error 523: The Recipient’s mailbox cannot receive messages this big. The total size of the message you have sent (ie: message + all of its attachments) exceeds the size limits on the Recipient’s server. Check the size of the email you sent, and, specifically, the size of the attachments you included, and consider splitting your email into smaller emails.
• Error 530: Access denied. Your ISP’s SMTP server requires authentication and you tried to send a message without authentication (username + password). Check Common settings to verify authentication settings for this server. Another reason could be that your server has been blacklisted by the recipient’s server. Or the recipient’s mailbox does not exist.
• Error 535: Username and Password not accepted. Check SMTP account settings. Make sure login and password are entered correctly.
• Error 541: Recipient Address Rejected – Access denied. This response is almost always sent back by an anti-spam, or mail filtering appliance/firewall at the recipient’s end. Check your message with "Spam check" or ask the recipient to whitelist you.
• Error 550: Mailbox unavailable. This error will be returned by many servers if the recipient email address simply does not exist on the remote side. Contact the recipient verbally to get the correct email address. Error 550 will sometimes also be returned by the recipient’s anti-spam firewall. Another case of SMTP Error 550 is when the recipient’s server is down.
• Error 552: Requested mail action aborted: exceeded storage allocation or size of the incoming message exceeds the incoming size limit. The recipient’s mailbox has reached its maximum allowed size. Another case of SMTP Error 552 is when the size of the incoming message exceeds the size limit specified by the Network Administrator.
• Error 553: Requested action not taken – Mailbox name invalid. Invalid email address. SMTP Status 553 is also sometimes returned by an ISP mail server. When this happens this is almost always because you are trying to send through a specific ISP’s SMTP server and yet you are not connected to the Internet through that ISP.
• Error 554: Transaction failed. Recipient mail server will return an SMTP REPLY 554 when its anti-spam firewall does not like the sender’s email address, or the sender’s IP address, or the sender’s ISP server (because, for example, they are listed in an RBL) and where you will therefore either need to have the sender whitelist you in their anti-spam program/appliance, or you will need to take steps to have either your IP address or your ISP’s servers (if you send mail through your ISP) de-listed from one or more RBLs.

Monday, January 12, 2015

Friday, January 09, 2015

How do I identify Hotmail spamtraps

Spamtraps are anonying.
Since the spamtraps are used as parameter to measure the sending reputation, the owner of these spamtraps will never be interested in our newsletters.
On the other word, we can't make any revenue by writting to a spamtrap.
Even worse, by hitting spamtraps, we are due to get blocked on sending IP/domain bases.
Once an IP has been blocked, other mails are not able to be delivered either, which influences the total sending.
It means, we loose money, instead of earning 40 dollars by spending one single dollar on email marketing.

Spamtraps are also tricky.
We can hardly identify a spamtrap.
The biggest ISPs, like Gmail, Outlook/Hotmail, Yahoo, etc., they normally are using inactive addresses as spamtraps, resp. the addresses with no login for 6 or more months.
The anti-spam organisations, like Spamhaus, Barracuda, etc., they have their own addresses to catch spammers.
Neither of them will tell us, which addresses are spamtraps.

Outlook provides SNDS (Smart Network Data Service) reports for big senders. We can find lots of useful information on an IP base, for example about spamtraphits.

We can look up the numbers of spamtraphits and in which period were they hit, splitting by 24 hours. The time period could be accurated to minute, when the mail has been delivered into the mailbox of an Outlook spamtrap.
If there is only one spamtrap over a certain IP. We will see a period X:

1/9/2015 5:18 AM - 1/9/2015 5:18 AM

The beginning and the end of this period are the same, so it is the exact time, when a spamtrap has been written.
We even don't need to switch the time zone.

If there are two spamtraps over a certain IP. We will see a period Y:

1/8/2015 4:55 PM - 1/8/2015 10:22 PM

The beginning of this period represents the time, when spamtrap A has been written and the the end of this period represents the time, when spamtrap B has been written.

If there are more than 2 spamtraps over a certain IP. We can at lease try to identify 2 of them.

Here I say "try", because there is no 100% guarantee to succeed finding them out.

First, we need the data logs, which record the timestamps, when the mails to whom went outbound from our SMTP server.
Second, the sending volume cannot be that big per minute. If the sending speed is too high, that there are 100 records within this minute, we should rather give up.
Third, we have to assume, the mails has been non stopped to be delivered. On the other word, we suppose, the time we read up from SNDS is approximate to the outbound time, or only a couple of minutes after.

All above was background, now I am going to tell you, what I do to identify the spamtraps at Outlook.

There is no best way to optimize the optin process.
Even the content is so fascinating, everyone would like to subscribe the newsletter, typo happens. They are non-existing addresses related to bad domains, or spamtraps.

We, unusually, separate the welcome email and the confirmation email.
These two kinds of mails have different content, and will be triggered and sent out over two different IPs A &B as transactional emails to a subscriber, after he signed up with his email address.

These two IPs A resp. B are only used for welcome resp. confirmation emails.

If an Outlook spamtrap is hit, it must be caught twice, once over IP A and once over IP B.

The really work starts! The process below is for hitting 1 spamtrap. For hitting more spamtraps, we need simply to recycle the process.

  1. Search in logs for IP A.
  2. Gather all Outlook addresses, which covered the outbound time between the interval introduced by SNDS and a couple of minutes before. For instance, the period X above, I'd harvest the addresses with outbound time between 1/9/2015 5:15 AM and 1/9/2015 5:18 AM
  1. Search for the addresses one by one in the same logs to check if it appears only once regarding IP A.
  1. Search for the same address regarding IP B to check if it appears only once covered the outbound time between the interval defined by SNDS and a couple of minutes before.
  1. If one and only one address fits both time stamps regarding IP A and IP B, then this address should be the spamtrap, we are looking for.

The procedure can be processed automatically.

Depends on country, but mostly >20% of total sending volume consists of Outlook volume. Therefore, even it's not that simple, still worth to do.

Tuesday, January 06, 2015

V4BL is offline

Since 2 days, if you run the IP lookup for blacklisting and see these IPs, which use to be blocked by V4BL, are free now. Don't get happy too early, V4BL is just offline...









To be honest, I don't like this block list at all. 
They block IPs normally for "no reason" - all right, they give reasons, but I can never figure out what's the mean of them - and one can never get lifted from their list, although they support kindly "delist". 
Luckily not a single provider widely uses this list, so far I know.

I hope they will never be back online :D