Cara menyampaikan email melalui akun Google menggunakan Postfix


9

Saya ingin email non-lokal dikirimkan melalui akun Google pribadi saya dan lokal untuk dikirimkan ke pengguna lokal. Konfigurasi saya adalah: / etc / postfix / transport

*            smtp:[smtp.gmail.com]:587

dan /etc/postfix/main.cf

[root@media postfix]# cat main.cf
# This file contains only the parameters changed from a default install
# see /etc/postfix/main.cf.dist for a commented, fuller version of this file.
transport_maps = hash:/etc/postfix/transport
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_mechanism_filter = plain, login
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes

/ etc / postfix / sasl_passwd:

[smtp.google.com]:587    myuser@gmail.com:mypass

Dan setelah saya lari:

# postmap transport && postmap sasl_passwd
systemctl restart postfix.service

Jadi sekarang server saya mencoba terhubung ke gmail MX (tidak berhasil tetapi tidak mengirimkan email secara lokal

Log dari jurnalctl:

    Jul 06 18:38:01 media postfix/pickup[31431]: 30714960F8: uid=0 from=<root>
    Jul 06 18:38:01 media postfix/cleanup[31641]: 30714960F8: message- id=<20130706163801.30714960F8@media.localdomain>
    Jul 06 18:38:01 media postfix/qmgr[31432]: 30714960F8: from=<root@media.localdomain>, size=436, nrcpt=1 (queue active)
    Jul 06 18:38:01 media postfix/smtp[31643]: connect to smtp.gmail.com[2a00:1450:4008:c01::6c]:587: Network is unreachable
   Jul 06 18:38:01 media postfix/smtp[31643]: 30714960F8: to=<mackowiakp23@gmail.com>, relay=smtp.gmail.com[173.194.69.108]:587, delay=0.7, delays=0.03/0.04/0.55/0.07, ...M command))
    Jul 06 18:38:02 media postfix/cleanup[31641]: 0B85D960F9: message-id=<20130706163802.0B85D960F9@media.localdomain>
    Jul 06 18:38:02 media postfix/qmgr[31432]: 0B85D960F9: from=<>, size=2555, nrcpt=1 (queue active)
    Jul 06 18:38:02 media postfix/bounce[31646]: 30714960F8: sender non-delivery notification: 0B85D960F9
    Jul 06 18:38:02 media postfix/qmgr[31432]: 30714960F8: removed
    Jul 06 18:38:02 media postfix/smtp[31643]: connect to smtp.gmail.com[2a00:1450:4008:c01::6d]:587: Network is unreachable
    Jul 06 18:38:02 media postfix/smtp[31643]: 0B85D960F9: to=<root@media.localdomain>, relay=smtp.gmail.com[173.194.69.109]:587, delay=0.59, delays=0.02/0.01/0.51/0.06,...M command))
    Jul 06 18:38:02 media postfix/qmgr[31432]: 0B85D960F9: removed
    Jul 06 18:38:40 media auth[31778]: pam_tcb(dovecot:auth): Authentication passed for media from (uid=0)
    Jul 06 18:38:40 media dovecot[1442]: pop3-login: Login: user=<media>, method=PLAIN, rip=192.168.0.2, lip=192.168.0.7, mpid=31779, secured, session=<VZaXcdrgpADAqAAC>
    Jul 06 18:38:40 media dovecot[1442]: pop3(media): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
    Jul 06 18:38:58 media postfix/pickup[31431]: CD15D960F8: uid=0 from=<root>
    Jul 06 18:38:58 media postfix/cleanup[31641]: CD15D960F8: message-id=<20130706163858.CD15D960F8@media.localdomain>
    Jul 06 18:38:58 media postfix/qmgr[31432]: CD15D960F8: from=<root@media.localdomain>, size=430, nrcpt=1 (queue active)
    Jul 06 18:38:59 media postfix/smtp[31643]: CD15D960F8: to=<mackowiakp@op.pl>, relay=smtp.gmail.com[173.194.69.108]:587, delay=0.63, delays=0.02/0/0.54/0.06, dsn=5.5....M command))
    Jul 06 18:38:59 media postfix/cleanup[31641]: BAB0E960F9: message-id=<20130706163859.BAB0E960F9@media.localdomain>
    Jul 06 18:38:59 media postfix/qmgr[31432]: BAB0E960F9: from=<>, size=2541, nrcpt=1 (queue active)
    Jul 06 18:38:59 media postfix/bounce[31646]: CD15D960F8: sender non-delivery notification: BAB0E960F9
    Jul 06 18:38:59 media postfix/qmgr[31432]: CD15D960F8: removed
Jul 06 18:39:00 media postfix/smtp[31643]: BAB0E960F9: to=<root@media.localdomain>, relay=smtp.gmail.com[173.194.69.109]:587, delay=0.66, delays=0.02/0.01/0.56/0.07,...M command))
    Jul 06 18:39:00 media postfix/qmgr[31432]: BAB0E960F9: removed

Adakah bantuan untuk membuatnya bekerja?


Apakah asterisk itu benar-benar ada di / etc / postfix / transport Anda, atau itu hanya sesuatu yang ditambahkan secara tidak sengaja ke pertanyaan Anda?
CVn

Jawaban:


5

Anda harus mengaktifkan TLSdi klien SMTP Postfix, karena Google memerlukannya. Ini ditunjukkan oleh mereka dalam pesan Must issue a STARTTLS command.

Di /etc/postfix/main.cf, Anda menginginkan sesuatu seperti ini:

smtp_tls_policy_maps = hash:/etc/postfix/tls_policy

dan kemudian di /etc/postfix/tls_policy:

[smtp.gmail.com]:587 encrypt

Sisi kiri dalam tls_policyharus muncul persis sama dengan entri relayhost Anda main.cf.

Jangan lupa untuk menjalankan postmappada /etc/postfix/tls_policysetelah membuat atau mengubah sebagai diperlukan.

Anda dapat menemukan rincian lebih lanjut dalam dokumentasi TLS Postfix.

Lihat tautan ini

http://blog.bigdinosaur.org/postfix-gmail-and-you/

http://www.postfix.org/TLS_README.html#client_tls


2

Ini adalah prosedur yang saya gunakan untuk ini:

sudo apt-get install postfix.

Jika menanyakan jenis server surat yang Anda instal, pilih tidak ada konfigurasi (opsi pertama)

sudo nano /etc/postfix/main.cf

dan rekatkan ini di

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
# listen on localhost only
inet_interfaces = 127.0.0.1

smtpd_banner = $myhostname ESMTP $mail_name

biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

#Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

Simpan file, Sekarang kita buat file dengan nama pengguna dan kata sandi di

sudo nano /etc/postfix/sasl_passwd

dan tempel di bawah ini untuk membuat penggantian yang diperlukan

[smtp.gmail.com]:587    user.name@gmail.com:password

Simpan, dan pada prompt perintah

sudo postmap /etc/postfix/sasl_passwd

Kemudian

chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Akhirnya,

sudo service postfix restart

Perhatikan bahwa setelah Anda berhasil menguji sistem email, Anda dapat menghapus / mengaburkan kata sandi di sasl_passwd.

Uji dengan aplikasi Anda. Jika Anda mengalami masalah, periksa /var/log/mail.log Anda dapat memasang-instal mail-utils agar menginstal program mail. Anda kemudian dapat mengujinya

echo “this is a test” | mailx -s “This is the subject” destination@example.com

Akhirnya

Lari

newaliases

untuk membuat file /etc/aliases.db. Jika tidak, akan banyak kesalahan tentang login ke /var/log/mail.err Jika Anda mendapatkan kesalahan SASL (postfix) Periksa nama host di / etc / hosts dan / etc / hostname Jika postfix mengeluh tentang tidak mampu menyampaikan untuk host / alamat ip yang diberikan (postfix) Tambahkan ini ke /etc/postfix/main.cf

mynetworks = 10.0.0.0/8

Ini akan memungkinkan siapa saja dengan alamat 10.0.0.0 untuk terhubung, jelas Anda harus membaut ini sebanyak mungkin, baik dengan membatasi jaringan, dan / atau menggunakan firewall atau kebijakan keamanan yang tersedia untuk Anda


BAIK. TERIMA KASIH. Tetapi apa yang Anda gunakan untuk membuat / mendapatkan /etc/ssl/certs/Equifax_Secure_CA.pem sertifikat?
mackowiakp

Kesalahan saya, Anda seharusnya tidak perlu kalimat itu. Saya telah mengedit posting di atas untuk mencerminkan hal ini
GeoSword

Saya mendapat info: <test.user@domain.com>: host smtp.gmail.com [173.194.69.109] mengatakan: 530-5.5.1 Diperlukan Otentikasi. Pelajari lebih lanjut di 530 5.5.1 support.google.com/mail/bin/answer.py?answer=14257 fc7sm2465531bkc.3 - gsmtp (sebagai balasan atas perintah MAIL FROM) - jadi dalam konfigurasi tersebut MAIL FROM harus disertakan dalam definisi relai . Bagaimana saya bisa melakukannya?
mackowiakp

Oh s * & ^ * t! Di / etc / postfix / sasl_passwd adalah [smtp.google.com]: 587 sebagai gantinya [smtp.gmail.com]: 587. Terkadang sangat sulit untuk menemukan kesalahan sesederhana itu. TERIMA KASIH! BEKERJA!
mackowiakp

1

Pertama, pastikan untuk memeriksa metode otentikasi Google pertama:

https://www.google.com/settings/security/lesssecureapps

Jika halaman tidak tersedia untuk akun Anda, maka administrator domain menonaktifkan pengaturan ini untuk semua pengguna (default).

Ketika Anda memasukkan daftar putih IP / rentang dalam Relay SMTP di admin google, Anda dapat mengirim email dengan pengaturan ini

relayhost = [smtp-relay.gmail.com]:587
smtp_use_tls = yes
smtp_tls_loglevel=1
smtp_tls_security_level=encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = login, plain
smtp_tls_CApath = /etc/ssl/certs
smtp_sasl_tls_security_options = noanonymous

Namun, ketika Allow less secure apps: OFFsaya selalu menerima pesan-pesan ini:

(SASL authentication failed; server smtp-relay.gmail.com[173.194.204.28] said: 534-5.7.14
... Please log in via your web browser and?534-5.7.14 then try again.?534-5.7.14
Learn more at?534 5.7.14  https://support.google.com/mail/answer/78754 g133sm1077601qkb.1 - gsmtp)

tetapi pesan masih dikirim (yang agak aneh), meskipun butuh sedikit lebih lama untuk mendapatkan pesan kepada penerimanya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.