3

crontab でエラーが発生した場合に postfix の代わりに msmtp を使用してメールを送信したいのですが、失敗しました。

私のOSはubuntu 12.04です

これが私の手順です:

apt-get install msmtp-mta  #This will auto install msmtp, and symlink /usr/sbin/sendmail
apt-get install mailutils

次に、ファイルを編集して/etc/msmtprcsmtp サーバーを構成します。

defaults
tls off

account default
host smtp.ym.163.com
auth login
from myuser@mydomain.com
user myuser@mydomain.com
password mypss
logfile /var/log/msmtp.log
aliases /etc/aliases

次にmsmtpをテストしましたが、問題ありません

msmtp -Sd

loaded system configuration file /etc/msmtprc
ignoring user configuration file /root/.msmtprc: no such file or directory
falling back to default account
using account default from /etc/msmtprc
host                  = smtp.ym.163.com
port                  = 25
timeout               = off
protocol              = smtp
domain                = localhost
auth                  = LOGIN
user                  = myuser@mydomain
password              = *
passwordeval          = (not set)
ntlmdomain            = (not set)
tls                   = off
tls_starttls          = on
tls_trust_file        = (not set)
tls_crl_file          = (not set)
tls_fingerprint       = (not set)
tls_key_file          = (not set)
tls_cert_file         = (not set)
tls_certcheck         = on
tls_force_sslv3       = off
tls_min_dh_prime_bits = (not set)
tls_priorities        = (not set)
<-- 220 m199-177.yeah.net ESMTP HMail (1.0)
--> EHLO localhost
<-- 250-m199-177.yeah.net
<-- 250-PIPELINING
<-- 250-SIZE 71680000
<-- 250-ETRN
<-- 250-STARTTLS
<-- 250-AUTH LOGIN PLAIN
<-- 250-AUTH=LOGIN PLAIN
<-- 250-ENHANCEDSTATUSCODES
<-- 250 8BITMIME
--> QUIT
<-- 221 2.0.0 Bye
SMTP server at smtp.ym.163.com (m199-177.yeah.net [123.58.177.199]), port 25:
    m199-177.yeah.net ESMTP HMail (1.0)
Capabilities:
    SIZE 71680000:
        Maximum message size is 71680000 bytes = 68.36 MiB
    PIPELINING:
        Support for command grouping for faster transmission
    ETRN:
        Support for RMQS (Remote Message Queue Starting)
    STARTTLS:
        Support for TLS encryption via the STARTTLS command
    AUTH:
        Supported authentication methods:
        PLAIN LOGIN 
This server might advertise more or other capabilities when TLS is active.

次のステップは、/etc/aliases

# See man 5 aliases for format
postmaster:    root
root: myuser@mydomain.com
default: myuser@mydomain.com

また、msmtp を使用してメールを送信できます。

しかし では/var/log/cron.log、エラーが発生しました:

(root) MAIL (mailed 1 byte of output; but got status 0x004e, #012)

どうしたの ?問題を解決するには?誰か手を貸してくれませんか?

4

2 に答える 2

1

質問で説明されているのと非常によく似たシナリオがありましたが、現在の回答では問題は解決しませんでした。私の場合、問題の説明は、コマンドをcron実行するたびにではなくに設定されていたということでした。そのため、シンボリック リンクを介して置き換えられたとしても、にあるユーザー固有の構成ファイルを見つけることができませんでした。sendmail$HOME//home/<user>msmtpsendmail$HOME/.msmtprc

私の解決策/etc/msmtprcは、の代わりに使用することでし$HOME/.msmtprcた。

/etc/msmtprcこれは、システムの機密データを他のユーザーが読み取れるようにする可能性があるため、システムにとって最適なソリューションではない可能性があります。

詳細はこちら: http://comments.gmane.org/gmane.linux.debian.devel.bugs.general/671011

于 2016-01-13T23:03:09.040 に答える