วิธีรับอีเมลโดยใช้ Amazon SES


18

ฉันยังใหม่กับ Amazon Web Services (AWS) และ AWS Simple Email Service (SES)

AWS SES อนุญาตให้แอปรับอีเมลหรือไม่ ฉันไม่พบการอ้างอิงในคู่มือนักพัฒนา SES

แอปของฉันต้องการให้ระบุอีเมลที่ได้รับสำหรับลูกค้าต่อลูกค้าและในที่สุดพวกเขาจะถูกเก็บไว้ในฐานข้อมูล (โดยทางโปรแกรม) ลูกค้าทุกคนจะมีอีเมลในโดเมนที่โฮสต์แอป

ตัวอย่างเช่นมีการโฮสต์แอปwww.example.comบน AWS จากนั้นลูกค้าของ myapp นี้สามารถมีอีเมลที่ชอบ: john@example.com, barry@example.com, lisa@example.comเช่นเดียวกับที่

หากไม่สามารถทำได้ใน AWS SES โปรดแนะนำทางเลือกอื่น (สำหรับการส่งอีเมลปริมาณมาก) เกี่ยวกับวิธีการนี้สามารถทำได้ในสภาพแวดล้อม AWS


รอ. คุณกำลังพูดถึงการส่งหรือรับ?
mailq

คำตอบ:


9

SES ของ Amazon นั้นเคร่งครัดในการส่งอีเมล หากคุณต้องการรับอีเมลคุณจะต้องตั้งค่าตัวแทนการขนส่งจดหมาย (MTA) เช่น Sendmail, Postfix, Qmail และอื่น ๆ บนอินสแตนซ์ของเซิร์ฟเวอร์ EC2 และชี้ระเบียน DNS MX ไปที่อินสแตนซ์นั้น ในกรณีนี้คุณอาจจำเป็นต้องใช้ Elastic IP (EIP) เพื่อให้คุณมี IP แบบคงที่ ไม่พูดถึงคุณอาจสิ้นสุดด้วยการค้นหาช่วงที่อยู่ IP ที่ถูกบล็อกโดย DNSBLs

ฉันมักจะละเว้นจากการรับอีเมลภายใน AWS และได้รับเมลเซิร์ฟเวอร์นอกบนเซิร์ฟเวอร์ร่วมที่ตั้งอยู่เฉพาะหรือ VPSes เนื่องจากพวกเขามักจะถูกกว่าและถูกกว่าน้อยกว่า


22
สิ่งนี้ไม่เป็นความจริงอีกต่อไป การอัปเดตใหม่ของ Amazon SES มาพร้อมกับการเพิ่มกฎการรับซึ่งช่วยให้คุณสามารถเก็บอีเมลได้หลายวิธี
Elegant.Scripting

1
มันยังคงเป็นความจริงaws.amazon.com/ses (อ่านสองบรรทัดแรก) แม้ว่า SES จะมีความสามารถในการรับอีเมลโดยใช้กฎการรับ แต่ก็ไม่สามารถกำหนดเป็นกล่องจดหมายแบบดั้งเดิมหรือส่วนตัวได้
Adnan

41

วันนี้เป็นวันสำคัญของคุณ! ตอนนี้ AWS SES เปิดตัวรับอีเมล: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html

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

ตัวอย่างเช่นนี่คือข้อความตามที่ได้รับการบันทึกไปยัง S3: https://s3-eu-west-1.amazonaws.com/s3.jakub-boucek.cz/temp/lts0ahe3tucqpoii4ji0g0u3u08nrpuk1g0p3bo1และนี่คือผลลัพธ์ของการแจ้งเตือนที่ส่งไปยังปลายทาง : http://pastebin.com/yR3RjjkE


1
หาสุดยอด Jakub ฉันยังไม่เห็นประกาศเกี่ยวกับเรื่องนี้
EEAA

1
ฉันพบว่ามันซับซ้อนในการตั้งค่า SES มีใครระบุว่าการสอนแบบง่าย ๆ หรือไม่? Gmail สามารถกำหนดค่าให้เป็นลูกค้าของบริการได้หรือไม่
blong

สวัสดี @ ยาวใช่ SES ซับซ้อนมาก ไม่สามารถทำให้ Gmail (หรือผู้ให้บริการรายอื่น) สร้างเป็น "ลูกค้า" สำหรับสิ่งนี้ นี่ไม่ใช่กล่องจดหมายแบบคลาสสิก SES เป็นเครื่องประมวลผลสำหรับจดหมายขาเข้า คุณสามารถใช้ SES เพื่อเปลี่ยนเส้นทางอีเมลไปยัง Gmail แต่มันก็ไม่ง่ายเหมือนกัน มองไปAWS แลมบ์ดา SES อีเมล์ Forwarderโครงการ
JakubBoucek

สวัสดี @JakubBoucek ขอบคุณที่ตอบคำถามของฉัน ดูเหมือนว่าฉันจะต้องหาวิธีอื่น นี่คือสิ่งที่ฉันอาจพิจารณา: Simplyian.com/2015/01/07/…
blong

1
@ limasxgoesto0 ใช้ตัวแยกวิเคราะห์ MIME ใด ๆ เช่น an: github.com/nodemailer/mailparser
JakubBoucek

3

อัปเดต:หลังจากฉันโพสต์คำตอบนี้อเมซอนได้เพิ่มการสนับสนุนสำหรับการรับอีเมลผ่าน SES มันถูกออกแบบมาสำหรับการประมวลผลอัตโนมัติและไม่สามารถใช้งานได้เหมือนกล่องจดหมาย IMAP ทั่วไป ดูhttps://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.htmlสำหรับรายละเอียด

ล้าสมัย :

Amazon SES สำหรับส่งอีเมลเท่านั้น

(ที่มา: http://aws.amazon.com/ses/ )

Amazon Simple Email Service (Amazon SES) เป็นบริการส่งและส่งอีเมลจำนวนมากที่ปรับขนาดได้และคุ้มค่าสำหรับธุรกิจและนักพัฒนา

การรับอีเมลไม่ใช่เรื่องยาก แน่นอนว่าง่ายกว่าการส่งอีเมลพร้อมอุปสรรคการป้องกันสแปมทั้งหมด วิธีการเกี่ยวกับการตั้งค่าเซิร์ฟเวอร์ Postfix กับผู้ใช้เสมือน คุณกำลังนึกถึงหนังสือประเภทใด


2
หากคุณลงคะแนนฉันจะขอบคุณความคิดเห็นเกี่ยวกับเหตุผล ในขณะที่คำตอบนี้ถูกเขียนขึ้น (4 ปีที่แล้ว) มันไม่ผิดอย่างแน่นอน
Martijn Heemels

... คุณพูดถูกคำตอบนั้นไม่ผิดตอนโพสต์ แต่วันนี้ข้อมูลไม่ถูกต้อง ดังนั้นการลงคะแนนเสียงไม่ได้เกี่ยวกับคุณมันเป็นเรื่องของข้อมูล คุณอาจพิจารณาแก้ไขหรืออัปเดตด้วยข้อมูลที่ถูกต้อง (เพียงข้อเสนอแนะ)
agentv

2

Amazon SES ใช้เพื่อการส่งเท่านั้นและไม่เคยได้รับเมล (เพียงแค่ตีกลับ)

คุณต้องยืนยันที่อยู่อีเมลของผู้ส่งว่าถูกต้อง ที่อยู่อีเมลนี้จะขึ้นอยู่กับคุณ คุณสามารถมีบัญชี Freemail, บัญชีในเซิร์ฟเวอร์อีเมลของคุณใน EC2, บัญชีในเซิร์ฟเวอร์อีเมลของคุณใน บริษัท ของคุณหรือบัญชีอีเมลใด ๆ ที่คุณเป็นเจ้าของ แต่มันจะต้องเป็นของคุณ


0

วิธีที่ดีที่สุดที่ฉันพบคือการติดตั้งเซิร์ฟเวอร์อีเมล 'dovecot' ในเครื่อง ปรับแต่งเพื่อฟังใน 127.0.0.1 และ Maildir:

listen = 127.0.0.1
# mail_location = mbox:~/mail:INBOX=/var/mail/%u # Comment this and add next:
mail_location = maildir:~/Maildir

จากนั้นทำการติดตั้ง s3fs

sudo apt install s3fs
sudo echo "s3fs#mailbox-konkove /home/kes/Maildir/new fuse _netdev,allow_other,profile=mail,uid=1000,gid=1000,use_cache=/tmp/S3,defaults,noatime,endpoint=eu-west-1 0 0" >> /etc/fstab

กำหนดค่า AWS CLI

และกำหนดค่าโปรแกรมรับส่งเมลของคุณเพื่อรับจดหมายจาก~/Maildirผ่านโปรโตคอล IMAP

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