11

I've got msmtp setup on Ubuntu 10.10 so that cron can send me emails. That works like a champ, for the most part.

However, emails coming to my gmail account show up as coming from (unknown sender), and the headers show:

From: root (Cron Daemon)

How can I set the From header to a valid email address?

I've just got msmtp symlinked as /usr/sbin/sendmail

The one possible solution I've found is here: http://tech.bluesmoon.info/2010/01/pretty-print-cron-emails.html

However, I'm curious if there's a simpler way.

3
4

I've found two solutions:

  • With msmtp 1.8.8 or later (appeared in Ubuntu 20.10), use the set_from_header on configuration setting, which can override the existing From: unlike the earlier add_missing_from_header which could only add it when missing
  • With earlier versions (e.g. Ubuntu 20.04),
    • remove the msmtp-mta package, now useless,
    • create a two-line script rewriting the header, e.g. /usr/local/bin/msmtp-pseudo-mta.bash
#!/bin/bash
# Workaround until mtmsp >= 1.8.8 in Ubuntu 20.10.
sed -e "s/From: root (Cron Daemon)/From: WHATEVER YOU LIKE/" | msmtp $BASH_ARGV
    • make it executable, e.g. chmod 755 /usr/local/bin/msmtp-pseudo-mta.bash
    • symlink it as sendmail:
sudo ln -s /usr/local/bin/msmtp-pseudo-mta.bash /usr/sbin/sendmail

Idea from: https://serverfault.com/a/441414/17379

1

No problem. Just configure it like mentioned in the manual: http://msmtp.sourceforge.net/doc/msmtp.html#Envelope_002dfrom-address

maildomain example.com

should add example.com to all mails without domain set.

1
  • This only allows me to set the from email based on the user. It doesn't set the actual header that gmail reads. Currently I'm specifying the from address in the msmtprc. Without a valid from email, it keeps all my cron emails to spam, and I have to explicitly override it with a filter. Oct 13 '11 at 19:16
0

You can use -a switch in order to specify additional headers. And an additional header can be From, so it's just what you need.

Example:

/some_command.sh | mail -s "Email subject" -a "From:Sender Name <sender@email.com>" recipient@email.com

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.