วิธีสับเปลี่ยนเมลผ่านบัญชี Google โดยใช้ Postfix


9

ฉันต้องการส่งอีเมลที่ไม่ใช่อีเมลภายในเครื่องผ่านบัญชี Google ส่วนบุคคลและท้องถิ่นเพื่อส่งไปยังผู้ใช้ท้องถิ่น การกำหนดค่าของฉันคือ: / etc / postfix / transport

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

และ /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

และหลังจากที่ฉันวิ่ง:

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

ดังนั้นตอนนี้เซิร์ฟเวอร์ของฉันพยายามเชื่อมต่อกับ gmail MX (ไม่ประสบความสำเร็จ แต่ไม่ได้ส่งตำแหน่งอีเมล

บันทึกจาก journalctl:

    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

ความช่วยเหลือใด ๆ ที่จะทำให้มันใช้งานได้?


เครื่องหมายดอกจันนั้นอยู่ใน / etc / postfix / transport ของคุณจริง ๆ หรือเป็นเพียงสิ่งที่เพิ่มเข้ามาในคำถามของคุณโดยไม่ตั้งใจหรือไม่
CVn

คำตอบ:


5

คุณต้องเปิดใช้งานTLSในไคลเอนต์ SMTP ของ Postfix เนื่องจาก Google ต้องการ Must issue a STARTTLS commandนี่คือการแสดงโดยพวกเขาในข้อความ

ใน/etc/postfix/main.cfคุณต้องการสิ่งนี้:

smtp_tls_policy_maps = hash:/etc/postfix/tls_policy

แล้วใน/etc/postfix/tls_policy:

[smtp.gmail.com]:587 encrypt

ด้านซ้ายมือในtls_policyต้องปรากฏเหมือนกับรายการ relayhost main.cfคุณใน

อย่าลืมเรียกใช้postmapบน/etc/postfix/tls_policyหลังจากการสร้างหรือการเปลี่ยนแปลงได้ตามความจำเป็น

คุณสามารถดูรายละเอียดเพิ่มเติมได้ในเอกสาร TLS ของ Postfix

อ้างอิงลิงค์เหล่านี้

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

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


2

นี่คือขั้นตอนที่ฉันใช้สำหรับสิ่งนี้:

sudo apt-get install postfix.

หากถามว่าติดตั้งเมลเซิร์ฟเวอร์ประเภทใดไว้ให้เลือกไม่มีการกำหนดค่า (ตัวเลือกแรก)

sudo nano /etc/postfix/main.cf

และวางสิ่งนี้ลงใน

# 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

บันทึกไฟล์ตอนนี้เราสร้างไฟล์ด้วยชื่อผู้ใช้และรหัสผ่านใน

sudo nano /etc/postfix/sasl_passwd

และวางในสิ่งต่อไปนี้เพื่อทำการทดแทนที่จำเป็น

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

บันทึกและที่พรอมต์คำสั่ง

sudo postmap /etc/postfix/sasl_passwd

แล้วก็

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

สุดท้าย

sudo service postfix restart

โปรดทราบว่าเมื่อคุณทดสอบระบบอีเมลได้สำเร็จคุณสามารถลบ / obfuscate รหัสผ่านใน sasl_passwd

ทดสอบด้วยแอปพลิเคชันของคุณ หากคุณมีปัญหาให้ตรวจสอบ /var/log/mail.log คุณสามารถ apt-get install mail-utils เพื่อติดตั้งโปรแกรมจดหมาย จากนั้นคุณสามารถทดสอบด้วย

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

ในที่สุด

วิ่ง

newaliases

เพื่อสร้างไฟล์ /etc/aliases.db หากคุณไม่ทำเช่นนั้นจะบันทึกข้อผิดพลาดจำนวนมากเกี่ยวกับ /var/log/mail.err หากคุณได้รับข้อผิดพลาด SASL (postfix) ตรวจสอบชื่อโฮสต์ที่อยู่ใน / etc / hosts และ / etc / hostname หาก postfix บ่นเกี่ยวกับไม่ ความสามารถในการถ่ายทอดสำหรับโฮสต์ / ที่อยู่ IP ที่กำหนด (postfix) เพิ่มไปที่ /etc/postfix/main.cf

mynetworks = 10.0.0.0/8

วิธีนี้จะช่วยให้ทุกคนที่มีที่อยู่ 10.0.0.0 เชื่อมต่อเห็นได้ชัดว่าคุณควรปิดกั้นสิ่งนี้ให้มากที่สุดเท่าที่จะทำได้โดยการ จำกัด เครือข่ายและ / หรือใช้ไฟร์วอลล์หรือนโยบายความปลอดภัยใด ๆ


ตกลง. ขอบคุณ. แต่สิ่งที่คุณใช้ในการสร้าง / รับ /etc/ssl/certs/Equifax_Secure_CA.pem ใบรับรอง
mackowiakp

ความผิดพลาดของฉันคุณไม่ควรต้องการเส้นนั้น ฉันได้แก้ไขโพสต์ด้านบนเพื่อสะท้อนสิ่งนี้
GeoSword

ฉันได้รับข้อมูล: <test.user@domain.com>: host smtp.gmail.com [173.194.69.109] กล่าวว่า: 530-5.5.1 ต้องมีการตรวจสอบสิทธิ์ เรียนรู้เพิ่มเติมที่ 530 5.5.1 support.google.com/mail/bin/answer.py?answer=14257 fc7sm2465531bkc.3 - gsmtp (ตอบกลับไปที่คำสั่ง MAIL FROM) - ดังนั้นในการกำหนดค่าดังกล่าว MAIL FROM จะต้องรวมอยู่ในการกำหนดรีเลย์ . ฉันจะทำมันได้อย่างไร
mackowiakp

โอ้ s * & ^ * t! ใน / etc / postfix / sasl_passwd คือ [smtp.google.com]: 587 แทน [smtp.gmail.com]: 587 บางครั้งก็ยากที่จะหาข้อผิดพลาดง่ายๆเช่นนี้ ขอบคุณ! Works!
mackowiakp

1

ประการแรกตรวจสอบให้แน่ใจว่าได้ตรวจสอบวิธีการรับรองความถูกต้องของ Google เป็นครั้งแรก:

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

หากหน้านั้นไม่สามารถใช้ได้กับบัญชีของคุณผู้ดูแลโดเมนจะปิดใช้งานการตั้งค่านี้สำหรับผู้ใช้ทั้งหมด (ค่าเริ่มต้น)

เมื่อคุณอนุญาต IP / range ของคุณใน Relay SMTP ใน google admin คุณสามารถส่งอีเมลด้วยการตั้งค่านี้

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

อย่างไรก็ตามเมื่อAllow less secure apps: OFFฉันได้รับข้อความเหล่านี้เสมอ:

(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)

แต่ข้อความก็ยังคงส่งมอบ (ซึ่งค่อนข้างแปลก) แม้ว่ามันจะใช้เวลานานขึ้นเล็กน้อยในการส่งข้อความถึงผู้รับ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.