I’m looking for a simple sendmail replacement to receive local mail, such as from cron and service failures and forward it to on to a real SMTP server.

I have used msmtpd successfully but thought I’d ask if folks have other solutions they like.

  • @vegetaaaaaaa
    link
    English
    1
    edit-2
    8 months ago

    You can definitely replace senders with correct mail addresses for relaying through SMTP servers that expect them (this is what I do):

    # /etc/msmtprc
    account default
    ...
    host smtp.gmail.com
    auto_from on
    auth on
    user myaddress
    password hunter2
    
    # Replace local recipients with addresses in the aliases file
    aliases /etc/aliases
    
    # /etc/aliases
    mailer-daemon: postmaster
    postmaster: root
    nobody: root
    hostmaster: root
    usenet: root
    news: root
    webmaster: root
    www: root
    ftp: root
    abuse: root
    noc: root
    security: root
    root: default
    www-data: root
    default: [email protected]
    

    (the only thing I changed from the defaults in the aliases file is adding the last line)

    This makes it so all/most system accounts susceptible to send mail are aliased to root, and root in turn is aliased to my email address (which is the one configured in host/user/password in msmtprc)

    Edit: I think it’s actually the auto_from option which interests you. Check the msmtp manpage

    • @markstosOP
      link
      English
      28 months ago

      In the issue I linked, the msmtp author makes a distinction with changing the envelope recipient, which msmtp can do, with rewriting the email headers like “To”, which msmtp does not do.

      • @vegetaaaaaaa
        link
        English
        28 months ago

        https://github.com/chriswayg/ansible-msmtp-mailer/issues/14 While msmtp has features to alter the envelope sender and recipient, it doesn’t alter the “To:” or “From:” message itself. When the Envelope doesn’t match these details, it can be considered spam

        Oh I didn’t know that, good to know!

        The proposed one-line wrapper looks like a nice solution