-1

I have postfix installed on a development box and I used the parameters from this other posting to configure postfix to work on localhost only. But the other posting does not explain how to send emails or view received emails from the command line. I have higher level code for sending/receiving smtp email, but I want to be able to do it from the command line first in order to validate the postfix is working before I start testing the higher level code. I have made several tries and seem to be sending emails, but I cannot find the emails that have been sent. How can I confirm that the emails have been sent and also read the emails from the command line?

EDIT#1:

I typed MAIL=/home/root/Maildir in the terminal then hit return, then typed mail and hit return. I did this in the root account and again in the username account. This showed a list of old emails in the root account, so I logged into the username account and typed the following to send an email from username to root:

sendmail root@localhost <<EOF
subject:This is a test
from:username@localhost
Body message here...
EOF

The preceding code resulted in another command prompt with no error. But when I logged back into root and typed mail again to check mail, the new email was not listed along with the old emails.

Also, main.cf is as follows:

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myorigin = localhost
inet_interfaces = localhost
inet_protocols = all
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
relayhost = 
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
mailbox_command = 
debug_peer_level = 2
debugger_command =
    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
    ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES

What am I doing wrong?

EDIT#2:

After IanMcGowan's suggestions, I checked to see that mailx was already installed. I then used this tutorial to test sending and receiving emails using the mailx commands, but I am not able to read the newly send emails either. I think it is a configuration problem. I am using email addresses like root@localhost and username@localhost.

telnet localhost 25 results in:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost.localdomain ESMTP Postfix

nano /var/log/maillog contains:

Jan  5 12:09:40 localhost postfix/postfix-script[6162]: starting the Postfix mail system
Jan  5 12:09:40 localhost postfix/master[6164]: daemon started -- version 2.10.1, configuration /etc/postfix
Jan  5 12:46:00 localhost postfix/postfix-script[3036]: starting the Postfix mail system
Jan  5 12:46:00 localhost postfix/master[3047]: daemon started -- version 2.10.1, configuration /etc/postfix
Jan  5 13:12:02 localhost postfix/smtpd[4642]: connect from localhost.localdomain[127.0.0.1]
Jan  5 13:12:02 localhost postfix/smtpd[4642]: DB1249A618: client=localhost.localdomain[127.0.0.1]
Jan  5 13:12:02 localhost postfix/cleanup[4645]: DB1249A618: message-id=<1738078707.0.1420492322780.JavaMail.username@localhost.localdomain>
Jan  5 13:12:02 localhost postfix/qmgr[3058]: DB1249A618: from=<username@localhost.localdomain>, size=632, nrcpt=1 (queue active)
Jan  5 13:12:02 localhost postfix/smtpd[4642]: disconnect from localhost.localdomain[127.0.0.1]
Jan  5 13:12:02 localhost postfix/local[4646]: DB1249A618: to=<root@localhost.localdomain>, orig_to=<root@localhost>, relay=local, delay=0.11, delays=0.06/0.02/0/0.03, dsn=2.0.0, status=sent (delivered to maildir)
Jan  5 13:12:02 localhost postfix/qmgr[3058]: DB1249A618: removed
Jan  5 14:29:20 localhost postfix/pickup[5207]: 7F4439A616: uid=1000 from=<username>
Jan  5 14:29:20 localhost postfix/cleanup[5266]: 7F4439A616: message-id=<20150105222920.7F4439A616@localhost.localdomain>
Jan  5 14:29:20 localhost postfix/qmgr[3058]: 7F4439A616: from=<username@localhost.localdomain>, size=334, nrcpt=1 (queue active)
Jan  5 14:29:20 localhost postfix/local[5271]: 7F4439A616: to=<root@localhost.localdomain>, orig_to=<root@localhost>, relay=local, delay=0.13, delays=0.1/0.01/0/0.02, dsn=2.0.0, status=sent (delivered to maildir)
Jan  5 14:29:20 localhost postfix/qmgr[3058]: 7F4439A616: removed
Jan  5 14:57:10 localhost postfix/pickup[5207]: A21B49A618: uid=0 from=<root>
Jan  5 14:57:10 localhost postfix/cleanup[5529]: A21B49A618: message-id=<20150105225710.A21B49A618@localhost.localdomain>
Jan  5 14:57:10 localhost postfix/qmgr[3058]: A21B49A618: from=<root@localhost.localdomain>, size=534, nrcpt=1 (queue active)
Jan  5 14:57:10 localhost postfix/local[5531]: A21B49A618: to=<root@localhost.localdomain>, orig_to=<root>, relay=local, delay=0.38, delays=0.34/0.01/0/0.03, dsn=2.0.0, status=sent (delivered to maildir)
Jan  5 14:57:10 localhost postfix/qmgr[3058]: A21B49A618: removed
Jan  5 15:47:38 localhost postfix/pickup[5207]: F312D9A618: uid=0 from=<root>
Jan  5 15:47:39 localhost postfix/cleanup[5975]: F312D9A618: message-id=<20150105234738.F312D9A618@localhost.localdomain>
Jan  5 15:47:39 localhost postfix/qmgr[3058]: F312D9A618: from=<root@localhost.localdomain>, size=458, nrcpt=1 (queue active)
Jan  5 15:47:39 localhost postfix/local[5977]: F312D9A618: to=<username@localhost.localdomain>, orig_to=<username@localhost>, relay=local, delay=0.12, delays=0.09/0.01/0/0.03, dsn=2.0.0, status=sent (delivered to maildir)
Jan  5 15:47:39 localhost postfix/qmgr[3058]: F312D9A618: removed
Jan  5 15:48:20 localhost postfix/pickup[5207]: A826C9A618: uid=1000 from=<username>
Jan  5 15:48:20 localhost postfix/cleanup[5975]: A826C9A618: message-id=<20150105234820.A826C9A618@localhost.localdomain>
Jan  5 15:48:20 localhost postfix/qmgr[3058]: A826C9A618: from=<username@localhost.localdomain>, size=461, nrcpt=1 (queue active)
Jan  5 15:48:20 localhost postfix/local[5977]: A826C9A618: to=<username@localhost.localdomain>, orig_to=<username@localhost>, relay=local, delay=0.11, delays=0.08/0/0/0.03, dsn=2.0.0, status=sent (delivered to maildir)
Jan  5 15:48:20 localhost postfix/qmgr[3058]: A826C9A618: removed
Jan  5 15:48:29 localhost postfix/pickup[5207]: 54AA19A618: uid=1000 from=<username>
Jan  5 15:48:29 localhost postfix/cleanup[5975]: 54AA19A618: message-id=<20150105234829.54AA19A618@localhost.localdomain>
Jan  5 15:48:29 localhost postfix/qmgr[3058]: 54AA19A618: from=<username@localhost.localdomain>, size=461, nrcpt=1 (queue active)
Jan  5 15:48:29 localhost postfix/local[5977]: 54AA19A618: to=<root@localhost.localdomain>, orig_to=<root@localhost>, relay=local, delay=0.11, delays=0.09/0/0/0.02, dsn=2.0.0, status=sent (delivered to maildir)
Jan  5 15:48:29 localhost postfix/qmgr[3058]: 54AA19A618: removed
Jan  5 15:52:03 localhost postfix/pickup[5207]: C756E9A618: uid=0 from=<root>
Jan  5 15:52:03 localhost postfix/cleanup[6074]: C756E9A618: message-id=<20150105235203.C756E9A618@localhost.localdomain>
Jan  5 15:52:03 localhost postfix/qmgr[3058]: C756E9A618: from=<root@localhost.localdomain>, size=491, nrcpt=1 (queue active)
Jan  5 15:52:03 localhost postfix/local[6076]: C756E9A618: to=<root@localhost.localdomain>, orig_to=<root@localhost>, relay=local, delay=0.13, delays=0.09/0.01/0/0.03, dsn=2.0.0, status=sent (delivered to maildir)
Jan  5 15:52:03 localhost postfix/qmgr[3058]: C756E9A618: removed
Jan  5 16:02:36 localhost postfix/smtpd[6213]: connect from localhost.localdomain[127.0.0.1]
Jan  5 16:04:26 localhost postfix/smtpd[6213]: disconnect from localhost.localdomain[127.0.0.1]  

The logs say delivered to maildir. Am I using the wrong syntax to access maildir contents? If so, what is the correct syntax? Or is the problem in main.cf above?

EDIT#3

I typed nano /var/spool/mail/root and was able to view the old emails that show up when I log in as root and type mail or mailx. But the new emails are not located there. These emails are automated and seem to be relics from before postfix was configured to use /Maildir structure.

CodeMed
  • 5,199
  • Have you tested mail with the default configuration? I haven't installed mail on my CentOS machine, but it has postfix installed for system messages to root etc. Installing mutt allowed me to send test emails between myself and root without any configuration changes. May I suggest you roll back to this basic default configuration, test, and then attempt to reconfigure. Is there a reason that you're using Maildir within home instead of the defaults in /var/spool/mail/<user>? – garethTheRed Jan 06 '15 at 06:42
  • -I've added an answer, although I doubt very much it deserves any points. An alternative would be to simply delete the question as I don't think it, or any of the answers, provides any useful information that would benefit future readers. – garethTheRed Jan 07 '15 at 06:39

3 Answers3

1

If you are just testing the plumbing, then using mail/sendmail from the command line will work fine (as will telnet localhost 25). If you are not getting that mail, check /var/log for errors and post those for help resolving.

If you actually want to send and receive email from the command line then you need a Mail User Agent (MUA) not a Mail Transfer Agent (MTA)[3]. Mutt[1] is the common answer, though there are other excellent command line clients to choose from[2].

[1] https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Step_by_Step_Guide/s1-eclients-textmail.html

[2] http://en.wikipedia.org/wiki/List_of_email_clients#Text-based

[3] http://en.wikipedia.org/wiki/Email_agent_%28infrastructure%29

  • Ah, then mail as a client is fine. Check /var/log/mail* and see if there are any obvious errors in there. Postfix is very good about logging it's behaviour. – Ian McGowan Jan 06 '15 at 00:03
  • Perhaps change the question from "How do I use the CentOS 7 command line to send emails and view received emails using postfix?" to "My new postfix install is not delivering mail, what am I doing wrong?" ;-) – Ian McGowan Jan 06 '15 at 00:04
  • That helps - "Jan 5 15:52:03 localhost postfix/local[6076]: status=sent (delivered to maildir)" shows that the local mail delivery agent is working. As root, can you do "ls ~/Maildir/" and see some files? There should be one per message.

    Alternatively, configure the smarthost option to route mail (if you have one, that's the easiest option) and then send the test email to your gmail account. If that's what you want to do eventually anyway...

    – Ian McGowan Jan 06 '15 at 06:33
  • Looks like you're making more progress asking the same question over at server fault: http://serverfault.com/questions/656514/cannot-find-postfix-mailx-email-in-maildir-why-not - would it make sense to close this question? – Ian McGowan Jan 06 '15 at 06:42
  • Thank you and +1 for your help and for your time. Actually, garethTheRed answered this question here in a way that might be better than the serverfault approach. They are different questions. This question is answered by using the default settings as garethTheRed suggested. The serverfault question is about Maildir. – CodeMed Jan 06 '15 at 22:57
1

Change MAIL=/home/root/Maildir to MAIL=/root/Maildir

  • Thank you and +1. This works for root user, but not for other users like username1, username2, username3, etc. – CodeMed Jan 06 '15 at 22:55
1

Unless you have a specific requirement to move your mail store; simply restore the configuration to the defaults.

That setup stores your emails in /var/spool/mail/<username> instead of your home which means any MUA you install will know where to find it without any reconfiguration.

garethTheRed
  • 33,957
  • I need to figure out how to get firewalld on my server to accept SMTP outbound mail from the Thunderbird client on my devbox on port 587 or 465 while still accepting inbound SMTP email from other mail servers, most likely through port 25. Are you willing to help me with this other problem? Here is the link: http://unix.stackexchange.com/questions/187807/setting-up-a-relay-port-for-postfix-smtp-on-centos-7 – CodeMed Mar 03 '15 at 01:50