I’ve recently gotten Exim4 to send mail from the BBB with Debian, using the Gmail SMTP server. (I tried using the BBB as the server with SMTP port 25, but my ISP [Comcast] blocks that port to prevent spam.) I am running code to monitor a sensor, and wanted an email alert to me at certain detected values. Here are the general steps:
-
Tell Google that you’ll be sending email from your BBB. From a browser on the BBB, sign in to your gmail account at:
http://www.google.com/accounts/DisplayUnlockCaptcha -
Open port 587. For this you need to be root. Check your iptables (firewall) first to see if 587 is already open:
`
iptables -L -n
`
If not, then
`
iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT
`
and, if you don’t have any input rules, which is good (see http://unix.stackexchange.com/questions/104954/how-to-allow-outgoing-smtp-on-iptables-debian-linux)), then
# iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
3. Install and configure exim4 as root. This is the package that sends the email.
# apt-get install exim4
Now, configure exim as root:
# dpkg-reconfigure exim4-config
in the dialog, answer as follows:
> Configuration type | mail sent by smarthost; received via SMTP or fetchmail |
> - | - |
> System mail name | localhost |
> IP-addresses to listen on for incoming SMTP connections | 127.0.0.1 ; ::1 (to refuse external connections) |
> Other destinations for which mail is accepted | *leave empty* |
> Machines to relay mail for | *leave empty* |
> IP address or host name of the outgoing smarthost | smtp.gmail.com::587 |
> Hide local mail name in outgoing mail ? | yes |
> Keep number of DNS-queries minimal (Dial-on-Demand) ? | no |
> Delivery method for local mail | mbox format in /var/mail/ |
> Split configuration into small files ? | no<br> |
check /etc/exim4/update-exim4.conf.conf to see if the file looks like the below, and if not, change it:
dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
Then modify /etc/exim4/passwd.client to (substitute your gmail name and pwd):
gmail-smtp.l.google.com:yourgmailname@gmail.com:yourpassword
*.google.com:yourgmailname@gmail.com:yourpassword
smtp.gmail.com:youremailname3@gmail.com:yourpassword
Change permissions, etc
# chown root:Debian-exim /etc/exim4/passwd.client
# chmod 640 /etc/exim4/passwd.client
restart Exim