Setup ubuntu server to send mail()
Solution 1:
I also agree there is a lack of tutorials for people who just need a script to send, e.g. error emails, and don't need a full-blown mail server.
First, if postfix not already installed do:
sudo apt-get install postfix
It prompts with a couple of questions. For the first I chose "Internet site"; for a machine behind a firewall I might choose smarthost instead. For the second question it defaults to the machine name; I appended a domain name that I control (so I can set DNS for it later, should I need to).
At this point you should be able to use "mail" from the commandline to send a test. (I usually follow instructions on http://ubuntuforums.org/showthread.php?t=38429 first, otherwise I have to use the -f
flag to /usr/bin/sendmail
. I also like to create /etc/aliases
with entries for root and my normal user, and then run newaliases
)
Then under /etc/php5/conf.d create a file (e.g. mailconfig.ini) with these contents:
sendmail_from = "[email protected]"
sendmail_path = "/usr/sbin/sendmail -t -i -f [email protected]"
Change [email protected] to your email address. They mean all email will look like it is sent by you, which can help prevent it being rejected. This is sufficient for just sending error emails to a developer.
(The above instructions tested on Ubuntu 10.04, 11.04, 11.10, 12.04)
P.S. As pointed out by razzed in the comments, mail
is not always there (e.g. on Ubuntu 11.10 it is missing). This does not actually affect the above instructions, you only need mail
for the test, and you can use sendmail
just as well for that. But mail
is also useful for reading email, so it is usually worth installing it, with: apt-get install mailutils
(as root).
Solution 2:
You'll need to setup the ubuntu server to be able to send mail ... as an example, you could install and configure postfix.
The Ubuntu documentation has a nice page at https://help.ubuntu.com/community/MailServer
Solution 3:
Either go through the painful process of setting up a mail server directly on your server (postfix, etc) or use a library that will allow you to connect directly to a smtp server.