I am using a debian OS on a QNAP TS-419P NAS to backup data daily from website and workstation. Sometimes, I need to send email from the server to let myself know some task is finished or probably I need to send out email to customers. However, build a mail server with dynamic IP address is always not a good idea. Even if you have a static IP, you might be banned from the receiver’s mail server easily. Anyway, this article talks about using gmail server to send emails from your own server.
Under debian, you can send emails through command line with the help of sendmail and exim4 as a mail transfer agent. But before you can send out emails you need to configure them to use an smtp server.
1. Configure exim4 using the command
Here are the options you need to choose:
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 (This refuses 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 Keep number of DNS-queries minimal (Dial-on-Demand) ?: no Split configuration into small files ?yes
2. Add your gmail account in /etc/exim4/passwd.client
gmail-smtp.l.google.com:email@example.com:yourpassword *.google.com:firstname.lastname@example.org:yourpassword smtp.gmail.com:email@example.com:yourpassword
Note, you can use your google app account as well, just replace firstname.lastname@example.org with your.account@your_domain.com. It works well!
Since you are put the plain-text password here, it’s a good idea to setup proper ownership and permissions to the password file:
chown Debian-exim:root /etc/exim4/passwd.client chmod 640 /etc/exim4/passwd.client
3. Now reload exim4:
update-exim4.conf invoke-rc.d exim4 restart exim4 -qff
Good, you are ready to send out the first email!
save the following to a txt file /tmp/myfirstmail.txt
to : email@example.com from : The name display as sender's name subject : Test mail
This is the first mail sent by my server’s sendmail !
and pass it to sendmail with -t option
cat /root/mail-body.txt | sendmail -t
You should receive the mail it send out.