cannot find postfix/mailx email in maildir, why not?

8,455

By default mailx will search read mbox file /var/spool/mail/$username. You can view it with below command (credit to beginlinux.com website)

$ set | grep -i mail
MAIL=/var/spool/mail/myuser
MAILCHECK=60

When you change parameter home_mailbox in postfix, you need to adjust the mailx configuration so it will search mail in new location. With home_mailbox = Maildir/, postfix will store the email in Maildir directory relative with user home directory.

Snippet from postfix man postconf

home_mailbox (default: empty)

Optional pathname of a mailbox file relative to a local(8) user's home directory.

Specify a pathname ending in "/" for qmail-style delivery.

So your email will stored in $HOME/Maildir/, with $HOME is your home directory. For root, his home directory is /root/; for other user, his home directory typically in /home/otheruser/. See muru explanation in unix.SE: Root /home Directory vs ~ (tilde).

In your case, you need to edit ~/.mailrc and add these two lines

set MAIL=/root/Maildir
set folder=mail

References -> Fedora Forum: ~/.mailrc changes

Share:
8,455

Related videos on Youtube

CodeMed
Author by

CodeMed

Updated on September 18, 2022

Comments

  • CodeMed
    CodeMed almost 2 years

    In a CentOS 7 development machine, I have configured postfix to allow emails to be traded between localhost addresses. Mailx is also installed. I am able to send email, and the log files indicate that the mail has been delivered. However, I am not able to find the emails to view in the terminal. What am I doing wrong? How can I view these newly sent emails in the terminal?

    I am able to send email by typing mailx root@localhost in the terminal and then following the prompts to add subject and body, then Ctrl-D to get the command prompt. Also, when I type mail or mailx when logged in as root, the terminal responds with a list of a few old emails that were stored before postfix was changed to store emails in /Maildir, but there are no new emails to be found. I can view those old emails when I type in nano /var/spool/mail/root, but of course the new emails are not stored in /var/spool/mail/root.

    There is no /var/log/mail. However, 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=<[email protected]>, 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=<[email protected]>, 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=<[email protected]>
    Jan  5 14:29:20 localhost postfix/qmgr[3058]: 7F4439A616: from=<[email protected]>, size=334, nrcpt=1 (queue active)
    Jan  5 14:29:20 localhost postfix/local[5271]: 7F4439A616: to=<[email protected]>, 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=<[email protected]>
    Jan  5 14:57:10 localhost postfix/qmgr[3058]: A21B49A618: from=<[email protected]>, size=534, nrcpt=1 (queue active)
    Jan  5 14:57:10 localhost postfix/local[5531]: A21B49A618: to=<[email protected]>, 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=<[email protected]>
    Jan  5 15:47:39 localhost postfix/qmgr[3058]: F312D9A618: from=<[email protected]>, size=458, nrcpt=1 (queue active)
    Jan  5 15:47:39 localhost postfix/local[5977]: F312D9A618: to=<[email protected]>, 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=<[email protected]>
    Jan  5 15:48:20 localhost postfix/qmgr[3058]: A826C9A618: from=<[email protected]>, size=461, nrcpt=1 (queue active)
    Jan  5 15:48:20 localhost postfix/local[5977]: A826C9A618: to=<[email protected]>, 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=<[email protected]>
    Jan  5 15:48:29 localhost postfix/qmgr[3058]: 54AA19A618: from=<[email protected]>, size=461, nrcpt=1 (queue active)
    Jan  5 15:48:29 localhost postfix/local[5977]: 54AA19A618: to=<[email protected]>, 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=<[email protected]>
    Jan  5 15:52:03 localhost postfix/qmgr[3058]: C756E9A618: from=<[email protected]>, size=491, nrcpt=1 (queue active)
    Jan  5 15:52:03 localhost postfix/local[6076]: C756E9A618: to=<[email protected]>, 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?

    Also, main.cf is as follows (note it needs to allow localhost accounts to email each other):

    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:

    As per masegaloeh's advice, I typed nano ~/.mailrc and added the following before saving:

    set MAIL=/home/root/Maildir
    set folder=mail
    

    Next, I typed mailx, but the terminal responded with No mail for root. So I created a new email with the following:

    [root@localhost ~]# mailx
    No mail for root
    [root@localhost ~]# mailx root@localhost
    Subject: another 905pm test.
    gonna try again now.
    EOT
    [root@localhost ~]# mailx
    No mail for root
    

    As you can see, there is no way to read the email I just sent. What am I doing wrong?

  • masegaloeh
    masegaloeh over 9 years
    See edited answer (again). Comment wasn't proper place to hold this piece of information.
  • CodeMed
    CodeMed over 9 years
    Your answer works for the one root user, but not for other users. I posted another question about configuring this for multiple users. Are you willing to help me with this? Here is the link: serverfault.com/questions/656726/…