ฉันใช้เซิร์ฟเวอร์ Ubuntu 14.04 (Linux) ฉันได้ติดตั้งและกำหนดค่าPostfixและOpenDKIMอย่างดีบนเซิร์ฟเวอร์ ฉันสามารถส่งอีเมลไปยังตัวเองด้วยคำสั่งเช่นecho hi | sendmail root
และ postfix / opendkim จะเพิ่มส่วนหัวเช่นMessage-Id
, Date
และDKIM-Signature
ส่งต่ออีเมลไปยังที่อยู่อีเมลส่วนตัวของฉันและทุกอย่างใช้งานได้ดี
ตอนนี้ฉันต้องการสร้างแอปพลิเคชันที่ทำงานในDocker container และสามารถส่งอีเมลได้อย่างง่ายดาย โดยเฉพาะอย่างยิ่งฉันไม่ต้องการกังวลเกี่ยวกับการเพิ่มส่วนหัวเช่นMessage-Id
กันและฉันไม่ต้องการทำการกำหนดค่ามากหรือติดตั้งซอฟต์แวร์ภายในคอนเทนเนอร์เอง
วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?
มีวิธีใดที่จะให้คอนเทนเนอร์รันsendmail
exectuable บนโฮสต์หรือไม่?
ฉันพยายามทำการเชื่อมต่อกับ Postfix จากคอนเทนเนอร์โดยใช้โปรโตคอล SMTP บนพอร์ต 25 แต่ Postfix ดูเหมือนว่าจะรักษาข้อความที่ได้รับแตกต่างกัน ฉันคิดว่ามันไม่ได้เพิ่มส่วนหัวใด ๆ ดังนั้นข้อความที่ถูกปฏิเสธทันทีว่าเป็นจดหมายขยะโดย gmail (มันยังไม่ดีพอที่จะวางไว้ในโฟลเดอร์สแปมของฉัน)
นี่คือเนื้อหาของ maillog
Sep 28 23:35:52 dantooine postfix/smtpd[4306]: connect from unknown[172.17.0.95]
Sep 28 23:35:52 dantooine postfix/smtpd[4306]: DD457889B: client=unknown[172.17.0.95]
Sep 28 23:35:52 dantooine postfix/cleanup[4309]: DD457889B: message-id=<>
Sep 28 23:35:52 dantooine spamd[3175]: spamd: connection from localhost [::1]:59471 to port 783, fd 6
Sep 28 23:35:52 dantooine spamd[3175]: spamd: handle_user (getpwnam) unable to find user: 'someone'
Sep 28 23:35:52 dantooine spamd[3175]: spamd: still running as root: user not specified with -u, not found, or set to root, falling back to nobody
Sep 28 23:35:52 dantooine spamd[3175]: spamd: processing message (unknown) for someone:65534
Sep 28 23:35:52 dantooine spamd[3175]: spamd: clean message (2.5/5.0) for someone:65534 in 0.0 seconds, 331 bytes.
Sep 28 23:35:52 dantooine spamd[3175]: spamd: result: . 2 - MISSING_DATE,MISSING_FROM,MISSING_MID,UNPARSEABLE_RELAY scantime=0.0,size=331,user=someone,uid=65534,required_score=5.0,rhost=localhost,raddr=::1,rport=59471,mid=(unknown),autolearn=no autolearn_force=no
Sep 28 23:35:52 dantooine opendkim[3179]: DD457889B: can't determine message sender; accepting
Sep 28 23:35:53 dantooine postfix/qmgr[3664]: DD457889B: from=<whoever@example.com>, size=275, nrcpt=1 (queue active)
Sep 28 23:35:53 dantooine postfix/smtpd[4306]: disconnect from unknown[172.17.0.95]
Sep 28 23:35:53 dantooine postfix/smtp[4311]: DD457889B: to=<someone@gmail.com>, relay=gmail-smtp-in.l.google.com[2607:f8b0:4003:c05::1b]:25, delay=0.25, delays=0.12/0.01/0.03/0.09, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[2607:f8b0:4003:c05::1b] said: 550-5.7.1 [fd17:8b70:893a:44bf:fe73:6c21] Our system has detected that 550-5.7.1 this message is likely unsolicited mail. To reduce the amount of spam 550-5.7.1 sent to Gmail, this message has been blocked. Please visit 550-5.7.1 http://support.google.com/mail/bin/answer.py?hl=en&answer=188131 for 550 5.7.1 more information. su20si7357528oeb.94 - gsmtp (in reply to end of DATA command))
Sep 28 23:35:53 dantooine postfix/cleanup[4309]: 254E688A0: message-id=<20140928233553.254E688A0@myserver.example.com>
Sep 28 23:35:53 dantooine postfix/bounce[4330]: DD457889B: sender non-delivery notification: 254E688A0
Sep 28 23:35:53 dantooine postfix/qmgr[3664]: 254E688A0: from=<>, size=3374, nrcpt=1 (queue active)
Sep 28 23:35:53 dantooine postfix/qmgr[3664]: DD457889B: removed
Sep 28 23:35:53 dantooine postfix/virtual[4331]: 254E688A0: to=<whoever@example.com>, relay=virtual, delay=0.01, delays=0/0/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Sep 28 23:35:53 dantooine postfix/qmgr[3664]: 254E688A0: removed
To
ส่วนSubject
หัวส่วนหัวและเนื้อหาหนึ่งบรรทัด ฉันไม่แน่ใจว่าจะบอกได้อย่างไรว่าส่วนหัวของมันมีอะไรบ้างหลังจาก Postfix วิ่งผ่านกลุ่มเป้าหมายคุณรู้ได้อย่างไร นี่คือผลลัพธ์ใน / var / log / syslog ที่แสดงวิธีการประมวลผลโดย Postfix และปฏิเสธโดย Gmail: gist.github.com/DavidEGrayson/fbf65c8290c049a1f262