How to send email with my CentOS server?

128,393

Solution 1

/bin/mail -s "Enter Subject Line here" -a /home/.../whateverFileYouWantAttached "you@YourEmailAddress" < /home/me/textBody.letter

try above command :)

Solution 2

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:

  1. 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.

  2. 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.

  3. 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.

Solution 3

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

yum install mailx

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.

Solution 4

You need to do the following:

  1. sudo yum install postfix telnet mailx
  2. sudo /etc/init.d/postfix start
  3. sudo vi /etc/postfix/main.cf
  4. Change mydestination = mydomain.com, localhost.mydomain.com, localhost

    to

    mydestination = localhost.mydomain.com, localhost

Test using the following from the command line

  1. mail [email protected] Subject:
  2. Test email from demoslice.com Test
  3. body of the email.
  4. .

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.

Solution 5

Have you modified your /etc/mail.rc to set the smtp address?

Share:
128,393

Related videos on Youtube

Jake Wilson
Author by

Jake Wilson

Updated on September 17, 2022

Comments

  • Jake Wilson
    Jake Wilson almost 2 years

    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?

    • Ignacio Vazquez-Abrams
      Ignacio Vazquez-Abrams over 13 years
      Have you tried? What sort of problems are you seeing?
    • Jake Wilson
      Jake Wilson over 13 years
      I'm not sure what I'm looking for. I search Google and see tutorials for setting up a Linux Mail Server. Is that what I want?
    • NukaRakuForgotEmail
      NukaRakuForgotEmail over 13 years
      Just noticed this was still unanswered. Out of curiosity, have you figured it out? Did you check if the machine was listed on PBL? spamhaus.org/pbl
    • Jake Wilson
      Jake Wilson over 13 years
      I did not get it to work. I have not gone through the process of installing sendmail yet, because the posters below imply that the it shouldn't be required to simply send a single email. I can't imagine my little home server is listed on a spam list as I've never even sent an email from it before.
    • Jake Wilson
      Jake Wilson over 13 years
      I even tried the simple command I listed above sending to a 10minutemail.com email account with the same result and same log message
  • dunxd
    dunxd over 13 years
    +1 You don't need a mail server on the system to send mail, just as you don't need a mail server on your desktop to send mail. The mail program is just fine.
  • Jake Wilson
    Jake Wilson over 13 years
    I tried this command and it didn't work. No errors or anything. Just no mail showing up in my gmail inbox. Look above at what my maillog says
  • Jake Wilson
    Jake Wilson over 13 years
    The content of /etc/mail.rc is set ask askcc append dot save crt ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via What are you suggesting I do?
  • Jake Wilson
    Jake Wilson over 13 years
    So... any reason why this is not working for me? What log should I be looking at to determine why I'm not receiving any mail?
  • sksamuel
    sksamuel almost 13 years
    This is a brilliant answer - short and works.