Sebagai pengguna biasa saya dapat mengirim email, baik dari commandline atau dari PHP. Tetapi ketika pekerjaan cron memiliki output kesalahan, pengiriman email itu gagal (saya punya [email protected] di bagian atas crontab). Hal yang sama terjadi untuk pengiriman dari commandline sebagai root (*).

Saya telah melacak ini hingga: ketika email berfungsi header Dari dan Jalur Kembali diatur ke [email protected]. Domain itu adalah satu set di /etc/mail/sendmail.mc, yaitu saya punya tiga baris ini:

FEATURE(`allmasquerade') dnl
MASQUERADE_DOMAIN(`valid.domain.com.')dnl
MASQUERADE_AS(valid.domain.com)dnl

Untuk surel yang gagal, tajuk Dari dan Jalur Kembali disetel ke [email protected]. example2.com ada, tetapi nama mesin tidak memiliki entri DNS. Karenanya email ditolak dengan 550. machinename.example2.com adalah entri pertama di / etc / hosts untuk 127.0.0.1.

Saya curiga mengubah / etc / hosts dengan valid.domain.com mungkin berfungsi tetapi ini adalah server web produksi dan saya tidak ingin merusak hal lain. Itu juga terasa seperti tempat yang salah untuk menyelesaikan masalah email. Jadi saya berharap ini adalah pengaturan sendmail atau cron yang saya butuhkan. (Di komputer lain, ubuntu / postfix, saya sepertinya telah membuat / etc / postfix / sender_canonical untuk melakukan ini.)

OS: Centos 5.6

Server Email: sendmail 8.13.8

*: tetapi dalam kasus itu kesalahan dengan benar dikirim ke [email protected], karena saya telah menetapkan alias untuk root di / etc / alias. Ini tidak terjadi dengan email cron; email bouncing itu dimasukkan ke dalam kotak surat unix lokal saya.

Darren Cook
sumber