I just built a modest home server using CentOS 5.5. I want the server to be able to send emails to my Gmail account or other email accounts for various things like cron jobs. Also it would be nice to be able to send email via PHP applications that I run/develop on the server as well. Or even be able for the server to send emails via the mail command.
I know there are a million Google search results about setting up your Linux server as an email server or configuring sendmail etc. But they don't seem to be what I'm looking for... at least I don't think so. I'm not trying to setup some corporate server that other clients can connect to send out emails or anything complicated like that.
I just want my server to send me emails about stuff. Seems like it should be simple... Can anyone point me in the right direction?
UPDATE
Per a users request below, I tried this command:
/bin/mail -s "My Subject" "[email protected]" < /home/john/test
No errors or anything. But the email never showed up in my inbox. Here is my maillog
Oct 27 00:52:19 localhost sendmail[13702]: o9R6qJhU013702: from=root, size=10906, class=0, nrcpts=1, msgid=<[email protected]>, relay=root@localhost
Oct 27 00:52:19 localhost sendmail[13703]: o9R6qJOd013703: from=<[email protected]>, size=11209, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Oct 27 00:52:19 localhost sendmail[13702]: o9R6qJhU013702: [email protected], ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=40906, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o9R6qJOd013703 Message accepted for delivery)
Any clues?
/bin/mail -s "Enter Subject Line here" -a
/home/.../whateverFileYouWantAttached
"you@YourEmailAddress"
< /home/me/textBody.letter
try above command :)
Simple answer:
Set up sendmail. It will depend on your distribution but this isn't difficult at all. If you have any specific questions, ask away.
Complicated answer:
If you're asking this, you probably should not just jump the gun and setup sendmail justtt yet.
You'll need to take a few things into consideration:
Does your ISP allow you to send e-mail? You might be on non-server IP range and therefore, many e-mail providers will block your outright.
What address will you use as your from address? Are you authorized to send from this address (SPF, DomainKeys, etc)? If not, your messages might be detected as spam by e-mail providers---and rightfully so.
Last, but certainly not least: Do you really need to use your own SMTP service? Any reason why using your ISP's is not good enough?
Back in the days, setting up an SMTP server wasn't a big deal. Nowadays, the setup may be easier but setting it up so that it actually gets messages to people's mailboxes, is a challenge.
I can confirm that none of the above suggestions are working on my CentOS system at home either - not a single one. Which is annoying!
Then I tried the same on a fresh Amazon instance running CentOS 6.4, and even with the default configuration, I can send mail without problems. All I had to do was
after which sending mail as described above works like a charm. Installing complications like sendmail are NOT necessary for what Jakub is trying to do.
It must be some configuration with my ISP, since I haven't got a configurable firewall at my end here.
You need to do the following:
sudo yum install postfix telnet mailx
sudo /etc/init.d/postfix start
sudo vi /etc/postfix/main.cf
Change
mydestination = mydomain.com, localhost.mydomain.com, localhost
to
mydestination = localhost.mydomain.com, localhost
Test using the following from the command line
.
No. 4 - there is just a full stop to complete the body of the email. You now should have mail.
The above will get you a working MTA (Mail Transfer Agent). Some resources which will help you with a more advanced setup can be found at slicehost's articles on email setup for CentOS (scroll down to the CentOS and Email section). You should really consider setting the following correctly: hostname, RDNS (Reverse DNS) and SPF (Sender Policy Framework) records with your DNS provider.
Have you modified your /etc/mail.rc to set the smtp address?
Try installing postfix & set the mydestination in configuration file even it should work with sendmail.
Postfix is on the right track, but unless gmail thinks you're at least remotely legit (e.g. You're not a spammer) getting your mail delivered is pretty unlikely.
The process is a bit involved to post here, but the simplest way I have found of achieving this (and having your mail delivered) is to set up postfix as a relay, using your own gmail account as a transport.
The process I use is detailed here:
http://rs20.mine.nu/w/2011/07/gmail-as-relay-host-in-postfix/
No setting up self signed certs are needed (as per sendmail) and in my experience, it just works!
The easy solution is not sendmail, but sendEmail:
http://caspian.dotconf.net/menu/Software/SendEmail/#download
A perl script that is easily configured to send via whatever SMTP server you can get to -- I use it to send through Gmail accounts all the time, but it also works for ordinary SMTP over TCP on port 25, etc.
I usually wrap the sendEmail perl script with my own shell script for Gmail:
If there is no smtp server install on localhost, you don't need to install one, just point to the one that you use as an smtp server to send mails.