SMTP is a typical Internet protocol. It uses only text, and it is mainly line-
based; that is, you exchange information line by line. A typical email consists
of only a few attributes: a sender, a receiver, a subject, and a message body.
To transmit an email, you have to send a request to an SMTP server. The
request has to adhere to the SMTP specification.
Before we send an email using an Arduino and an Ethernet shield, you should
learn how to send an email from a command line using the
telnet
command.
To do so, you have to find an SMTP server that actually allows you to send
emails. This isn’t as easy as it sounds.
The biggest problem is that over the years, SMTP servers got very good at
detecting spam messages. Often you can’t send an email manually using a
telnet session because the SMTP server thinks it’s spam. Usually, the SMTP
server will accept your commands, but eventually it will tell you that it won’t
send your email.
Also, many SMTP servers today insist on encrypted connections, which is a
good thing. Implementing the cryptographic algorithms on an Arduino is quite
difficult and uses a lot of resources.
So, even with your email provider’s SMTP server, you might run into big
problems when you try to use it for sending emails from your Arduino.
To overcome such issues, you can use a special SMTP service, such as
SMTP2GO.
2
Most of these services support unencrypted connections and do
not restrict access in any way. Of course, you have to pay for the service if
the number of emails you send exceeds a certain limit. Most services offer a
free account that allows you to send a few emails per day or per month. As
of this writing, SMTP2GO allows you to send twenty emails per day for free.
If your burglar alarm sends more than twenty emails per day, you should
consider moving to a new neighborhood anyway.
To follow this chapter’s email examples, I strongly suggest you register an
account at a free SMTP service, such as SMTP2GO. If you have access to an
unrestricted SMTP server already, you can use that one, of course.
The following
telnet
session shows you how to send an email using SMTP2GO:
maik> telnet smtpcorp.com 2525
Trying 207.58.147.66...
Connected to smtpcorp.com.
Escape character is '^]'.
220 smtpcorp.com ESMTP Exim 4.80 Sun, 01 Jun 2014 18:22:28 +0000
2.
http://www.smtp2go.com/
report erratum • discuss
Emailing from the Command Line • 185
www.it-ebooks.info