Bagaimana cara saya membuat email cron ke akun @gmail saya

41

Saya memiliki beberapa pekerjaan cron yang terkadang menghasilkan output kesalahan dan ingin mendapatkan pemberitahuan di akun email "asli" saya, karena saya tidak menggunakan kotak surat pengguna saya di laptop Ubuntu saya, tetapi cron (atau mungkin postfix) terus mencoba mengirim email ke akun root lokal.

Saya tahu saya bisa menambahkan variabel MAILTO ke crontab:

ricardo@ricardo-laptop:~$ sudo crontab -l
[email protected]
# m h  dom mon dow   command
*/5 * * * * /home/ricardo/mrtg/cfg/run.sh

Tapi sepertinya tidak memperhatikannya

Saya juga mencoba menambahkan email saya ke /etc/aliasesfile dan menjalankannyanewaliases

ricardo@ricardo-laptop:~$ cat /etc/aliases
# See man 5 aliases for format
postmaster:    root
root:          [email protected]
ricardo:       [email protected]

tetap, setiap kali cron ingin mengirim email itu masih mengirimnya ke [email protected]:

ricardo@ricardo-laptop:/var/log$ tail mail.log
Aug  3 16:25:01 ricardo-laptop postfix/pickup[2002]: D985B310: uid=0 from=<root>
Aug  3 16:25:01 ricardo-laptop postfix/cleanup[4117]: D985B310: message-id=<20100803192501.D985B310@ricardo-laptop>
Aug  3 16:25:01 ricardo-laptop postfix/qmgr[2003]: D985B310: from=<[email protected]>, size=762, nrcpt=1 (queue active)
Aug  3 16:25:03 ricardo-laptop postfix/smtp[4120]: D985B310: to=<[email protected]>, orig_to=<root>, relay=smtp.gmail.com[74.125.157.109]:25, delay=1.5, delays=0.38/0.02/0.9/0.18, dsn=5.7.0, status=bounced (host smtp.gmail.com[74.125.157.109] said: 530 5.7.0 Must issue a STARTTLS command first. d1sm12275173anc.19 (in reply to MAIL FROM command))

Ada saran? Saya menjalankan Ubuntu 10,04, dengan semua yang terbaru

Ricardo Reyes
sumber

Jawaban:

20

Tampaknya Anda telah mengkonfigurasi smtp.gmail.com sebagai smarthost Anda untuk server email. Anda perlu menghapus konfigurasi smarthost atau mengeditnya sehingga server Anda mampu mengirim email ke dunia luar.

Konfigurasi yang Anda miliki sekarang untuk penerusan surat tampaknya berfungsi, tetapi gagal karena smtp.gmail.com menolak surat.

Pembaruan : Untuk referensi di masa mendatang, masalahnya adalah di /etc/mailnamemana tercantum nama yang tidak ada dalam mydestinationsdaftar postfix. Hal ini menyebabkan semua email dianggap asing dan /etc/aliasespemrosesan email di-bypass .

Ressu
sumber
Saya mengabaikan kesalahan TLS untuk saat ini, dan berkonsentrasi pada kenyataan bahwa baris terakhir di mail.log mengatakan: postfix / smtp [4120]: D985B310: to = <[email protected] .ar> jadi cron masih mencoba untuk mengirim email ke akun root saya alih-alih akun gmail saya. Saya takut meninggalkan jawaban gmail dalam pertanyaan akan membingungkan, tetapi saya tidak ingin mengubahnya terlalu banyak sehingga saya tidak kehilangan nilai. informasi. Saya akan mencoba untuk memperbaiki kesalahan TLS sekarang, tapi saya yakin itu seharusnya tidak ada hubungannya dengan masalah tujuan yang salah
Ricardo Reyes
Bisakah Anda memasukkan main.cf Anda untuk postfix. Saya menduga bahwa contoh postfix Anda berpikir bahwa surat itu bukan lokal untuk memulai, hanya surat lokal yang terpengaruh oleh file alias
Ressu
Inilah postfix.cfg saya: cl1p.net/postfix Saya mencoba menghapus opsi smarthost, tetapi itu hanya mengubah pesan kesalahan Gmail, karena ip saya tidak menyelesaikan dengan benar. Perlu diingat bahwa ini bukan server, ini hanya laptop pribadi saya dan satu-satunya email yang perlu saya sampaikan adalah peringatan cron, ke akun gmail saya sendiri. Terima kasih.
Ricardo Reyes
1
Hmm .. apakah / etc / mailname Anda memiliki nama host Anda di dalamnya? untuk beberapa alasan postfix tampaknya berpikir bahwa itu disebut 144-68-247-190.fibertel.com.ar bukan ricardo-laptop. Juga, apa yang hostnamedikatakan perintah itu?
Ressu
Postfix perlu dikonfigurasi sebagai server email lengkap, bukan sebagai satelit ke gmail. Jika tidak, akan ada masalah otentikasi karena pengirim bukan pengguna gmail.
txwikinger
1

Solusi diambil dari pertanyaan

(terima kasih kepada Ressu )

Masalahnya dengan file /etc/mailname

File ini dibuat oleh penginstal Ubuntu dan berisi nama server yang salah. Setelah saya mengubahnya untuk mencocokkan postfix "ricardo-laptop" menyadari email itu ditujukan untuk pengiriman lokal dan mulai mengikuti alias.

guntbert
sumber
0

pikir saya akan menambah orang yang menemukan ini seperti yang saya lakukan. Alternatif mudah jika Anda ingin semua email Anda dari akun root Anda adalah dengan menjalankan perintah ini:

sudo nano ~ / .forward

Anda kemudian dapat memasukkan satu email atau memisahkan lebih dari satu dengan koma. Ini akan meneruskan semua email root Anda (dengan asumsi Anda menggunakan root) ke alamat email dalam file ini.

Setelah Anda menambahkan email, Tekan Ctrl + X lalu Y untuk menyimpan perubahan.

Phil Young
sumber
ini menempatkan file di rumah pengguna saya, bukan milik root?
endolith
@endolith: Benar. Anda mungkin menginginkannya sudo nan ~root/.forward.
Flimm
1
tetapi Anda menggunakan sudo untuk membuat file di rumah pengguna?
endolith