ฉันจะเปลี่ยนพอร์ต postfix จาก 25 เป็น 587 ได้อย่างไร


15

ฉันเป็น noob ทั้งหมดเกี่ยวกับ Unix และ CLI หลังจาก googling เกือบ 6 ชั่วโมงฉันรู้ว่าฉันควรจะแก้ไขพอร์ต postfix จาก 25 ถึง 587 สำหรับฟังก์ชั่น PHP mail () เพื่อใช้งาน และนี่คือทางออกที่ฉันได้รับhttp://www.linuxmail.info/postfix-change-port/แต่ฉันไม่แน่ใจว่าจะเปลี่ยนอย่างไร อย่างที่ได้บอกไปแล้วว่าฉันเป็นโนบ ความช่วยเหลือใด ๆ เกี่ยวกับเรื่องนี้จะได้รับการชื่นชม

อัปเดต 1:

โซลูชัน grawity ทำให้ฉันมีข้อผิดพลาดดังต่อไปนี้

May  7 00:42:39 Ibrahim-Armars-MacBook-Pro postfix/pickup[4169]: DE2073F07C1: uid=501 from=<azhararmar>
May  7 00:42:39 Ibrahim-Armars-MacBook-Pro postfix/master[4185]: fatal: open lock file pid/master.pid: unable to set exclusive lock: Resource temporarily unavailable
May  7 00:42:39 Ibrahim-Armars-MacBook-Pro postfix/cleanup[4177]: DE2073F07C1: message-id=<20110506191239.DE2073F07C1@Ibrahim-Armars-MacBook-Pro.local>
May  7 00:42:39 Ibrahim-Armars-MacBook-Pro postfix/qmgr[4168]: DE2073F07C1: from=<azhararmar@Ibrahim-Armars-MacBook-Pro.local>, size=525, nrcpt=1 (queue active)
May  7 00:42:40 Ibrahim-Armars-MacBook-Pro postfix/smtp[4179]: DE2073F07C1: to=<azhar@iarmar.com>, relay=smtp.gmail.com[74.125.155.109]:587, delay=0.8, delays=0.01/0/0.79/0, dsn=4.7.5, status=deferred (TLS is required, but our TLS engine is unavailable)
May  7 00:42:41 Ibrahim-Armars-MacBook-Pro postfix/pickup[4169]: 5F2FC3F07C4: uid=501 from=<azhararmar>
May  7 00:42:41 Ibrahim-Armars-MacBook-Pro postfix/cleanup[4177]: 5F2FC3F07C4: message-id=<20110506191241.5F2FC3F07C4@Ibrahim-Armars-MacBook-Pro.local>
May  7 00:42:41 Ibrahim-Armars-MacBook-Pro postfix/qmgr[4168]: 5F2FC3F07C4: from=<azhararmar@Ibrahim-Armars-MacBook-Pro.local>, size=525, nrcpt=1 (queue active)
May  7 00:42:42 Ibrahim-Armars-MacBook-Pro postfix/smtp[4179]: 5F2FC3F07C4: to=<azhar@iarmar.com>, relay=smtp.gmail.com[74.125.155.109]:587, delay=0.79, delays=0.01/0/0.78/0, dsn=4.7.5, status=deferred (TLS is required, but our TLS engine is unavailable)
May  7 00:42:50 Ibrahim-Armars-MacBook-Pro postfix/master[4190]: fatal: open lock file pid/master.pid: unable to set exclusive lock: Resource temporarily unavailable

อัปเดต 2:

May  7 01:10:02 Ibrahim-Armars-MacBook-Pro postfix/master[4472]: fatal: open lock file pid/master.pid: unable to set exclusive lock: Resource temporarily unavailable
May  7 01:10:02 Ibrahim-Armars-MacBook-Pro postfix/pickup[4419]: 357F73F090F: uid=501 from=<azhararmar>
May  7 01:10:02 Ibrahim-Armars-MacBook-Pro postfix/cleanup[4430]: 357F73F090F: message-id=<20110506194002.357F73F090F@Ibrahim-Armars-MacBook-Pro.local>
May  7 01:10:02 Ibrahim-Armars-MacBook-Pro postfix/qmgr[4420]: 357F73F090F: from=<azhararmar@Ibrahim-Armars-MacBook-Pro.local>, size=525, nrcpt=1 (queue active)
May  7 01:10:03 Ibrahim-Armars-MacBook-Pro postfix/smtp[4448]: certificate verification failed for smtp.gmail.com[74.125.155.109]:587: untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certificate Authority

ตรวจสอบให้แน่ใจว่าคุณมีสำเนา " master" ที่ทำงานอยู่เพียงหนึ่งสำเนา...
1686

คำตอบ:


9

ตามความเห็นของคุณเกี่ยวกับคำตอบอื่น ๆ คุณต้องกำหนดค่า Postfix เพื่อใช้ Gmail เป็นโฮสต์รีเลย์ มีบทเรียนมากมายบนอินเทอร์เน็ตสำหรับเรื่องนี้; นี่คือรุ่นด่วน

หมายเหตุ: ด้วยการกำหนดค่านี้อีเมลทั้งหมดจะต้องถูกส่งโดยใช้ที่อยู่ Gmail ของคุณเป็น "จาก"

  1. master.cfยกเลิกการเปลี่ยนแปลงทั้งหมดของคุณไป

  2. ในmain.cfเพิ่มการตั้งค่าเหล่านี้:

    # This tells Postfix to hand off all messages to Gmail, and never do direct delivery.
    relayhost = [smtp.gmail.com]:587
    
    # This enables TLS (SMTPS) certificate verification, because Gmail has a valid one.
    smtp_tls_security_level = verify
    smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
    smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache
    
    # This tells Postfix to provide the username/password when Gmail asks for one.
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options = noanonymous
    
  3. ใน/etc/postfix/sasl_passwdเพิ่มชื่อผู้ใช้และรหัสผ่าน Gmail ของคุณเช่นนี้:

    [smtp.gmail.com]:587    user@gmail.com:mypassword
    
  4. รวบรวมsasl_passwdไฟล์ลงในฐานข้อมูล:

    postmap /etc/postfix/sasl_passwd
    
  5. ในที่สุดโหลดการกำหนดค่าหลักของ Postfix ใหม่:

    postfix reload
    

ฉันลองแล้วจะกลับมาหาคุณพร้อมผล ขอบคุณมาก.
Ibrahim Azhar Armar

ฉันทำตามสิ่งที่คุณพูด วางรหัสทั้งหมดในไฟล์ main.cf ที่ด้านบนของไฟล์และสร้างไฟล์ sasl_passwd ยังคงทำให้ฉันมีข้อผิดพลาดดังกล่าวข้างต้น
Ibrahim Azhar Armar

ดูเหมือนว่าคุณยังไม่ได้ตั้งค่า SSL (การเข้ารหัส) อย่างถูกต้องในระบบของคุณ เพื่อช่วยคุณในเรื่องนี้ผู้คนจะต้องรู้จักระบบปฏิบัติการของคุณ (เช่น Ubuntu, Fedora, Debian?) และจะทำอย่างไรถ้ามีแพ็คเกจ SSL ที่คุณติดตั้งไว้ สำหรับสิ่งที่คุ้มค่าฉันได้ติดตั้ง PostFix ไว้ในระบบของฉันเองเพื่อใช้รีเลย์โฮสต์ของ ISP และใช้งานได้ดี
CarlF

@ อิบราฮิม: อาจมีสองปัญหา 1) การตั้งค่า smtp_tls_CAfile มีแนวโน้มที่จะไม่ถูกต้อง: ฉันเขียนมันขึ้นอยู่กับระบบ Linux ลืมว่าคุณอยู่ใน OS X ได้ลองแสดงความคิดเห็นออก (คำนำหน้าบรรทัดด้วย#) จากนั้นลดระดับรักษาความปลอดภัยจากการverify encryptโหลด Postfix ใหม่ 2) หากยังไม่สามารถแก้ปัญหาได้อาจหมายความว่า Postfix นั้นถูกสร้างขึ้นโดยไม่รองรับ TLS มันไม่น่าเป็นไปได้ แต่เป็นไปได้ ...
1686

s / ลืม / ไม่ทราบ / สับสนกันแล้ว
user1686

14

ถ้าคุณเพียงต้องการมันทำงานบนพอร์ต 587 (และผมไม่แน่ใจว่าคุณไม่ผมคิดว่าคุณจะต้องการมันทำงานทั้ง 25 และ 587) แล้วหาบรรทัดในไฟล์ิ /etc/postfix/master.cf ว่า มีลักษณะเช่นนี้:

smtp      inet  n       -       n       -       -       smtpd

และเปลี่ยนเป็นแบบนี้:

587      inet  n       -       n       -       -       smtpd

หากคุณต้องการให้มันรันบนทั้งสองพอร์ตให้เพิ่มบรรทัดที่สองหลังจากบรรทัดแรกแทนที่จะแทนที่


ฉันแก้ไขไฟล์ master.cf โดยใช้ sudo ค่าได้รับการปรับปรุงฉันรีสตาร์ทคอมพิวเตอร์ด้วย แต่ก็ยังใช้พอร์ต 25 เป็นค่าเริ่มต้น สิ่งที่อาจผิดปกติ? :(
Ibrahim Azhar Armar

ตกลงค่าถูกตั้งเป็นค่าเริ่มต้นหลังจากบางครั้งฉันไม่ทราบว่าทำไมแม้เมื่อฉันเพิ่มค่าและบันทึกโดยใช้: wq เป็นกลุ่มมันเพิ่งกลับมาเป็นค่าเริ่มต้นอีกครั้งและอีกครั้ง
Ibrahim Azhar Armar

@ อิบราฮิม: ฉันคิดว่าคุณลืมพูดถึงบางสิ่งบางอย่าง คุณพยายามทำให้อีเมลทั้งหมดผ่านเซิร์ฟเวอร์เดียวsmtp.something.com:587ใช่หรือไม่
user1686

1
@Wes: FYI master.cfมีรายการสำหรับพอร์ตนี้อยู่แล้ว submissionก็มีป้ายกำกับ
user1686

1
@Ibrahim: ในกรณีนี้คุณจะต้องกำหนดค่า Postfix เพื่อใช้ Gmail เป็นโฮสต์รีเลย์ ผมจะโพสต์คำแนะนำในคำตอบที่แยกต่างหาก - master.cfสำหรับตอนนี้ยกเลิกการเปลี่ยนแปลงทั้งหมดเพื่อ
user1686
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.