Rails ไม่ส่งอีเมลบน AWS

ฉันกำลังพยายามส่งอีเมลยืนยันจากแอปพลิเคชัน Rails ของฉัน ในสภาพแวดล้อมการพัฒนาของฉันมันทำงานได้อย่างสมบูรณ์แบบ (ใน Ubuntu) อย่างไรก็ตาม เมื่อฉันพยายามส่งอีเมลในอินสแตนซ์ Amazon AWS EC2 ของฉัน มันไม่ทำงาน ฉันได้รับบันทึกข้อผิดพลาดถัดไป:

BookingRequestEvent.execute
{ 38227580 rufus-scheduler intercepted an error:
  38227580   job:
  38227580     Rufus::Scheduler::EveryJob "60s" {}
  38227580   error:
  38227580     38227580
  38227580     Errno::ECONNREFUSED
  38227580     Connection refused - connect(2)
  38227580       /home/ubuntu/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/smtp.rb:541:in `initialize'
  38227580       /home/ubuntu/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/smtp.rb:541:in `open'
  38227580       /home/ubuntu/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/smtp.rb:541:in `tcp_socket'
  38227580       /home/ubuntu/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/smtp.rb:551:in `block in do_start'
  38227580       /home/ubuntu/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/timeout.rb:66:in `timeout'
  38227580       /home/ubuntu/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/smtp.rb:550:in `do_start'
  38227580       /home/ubuntu/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/net/smtp.rb:520:in `start'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/mail-2.5.4/lib/mail/message.rb:2129:in `do_delivery'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/mail-2.5.4/lib/mail/message.rb:232:in `block in deliver'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/actionmailer-4.0.0/lib/action_mailer/base.rb:456:in `block in deliver_mail'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/activesupport-4.0.0/lib/active_support/notifications.rb:159:in `block in instrument'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/activesupport-4.0.0/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/activesupport-4.0.0/lib/active_support/notifications.rb:159:in `instrument'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/actionmailer-4.0.0/lib/action_mailer/base.rb:454:in `deliver_mail'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/mail-2.5.4/lib/mail/message.rb:232:in `deliver'
  38227580       /home/ubuntu/apps/yanpyapi/app/models/notification_manager.rb:6:in `notify'
  38227580       /home/ubuntu/apps/yanpyapi/app/models/events/booking_request_event.rb:22:in `execute'
  38227580       /home/ubuntu/apps/yanpyapi/app/models/secretary.rb:85:in `block in executeEvents'
  38227580       /home/ubuntu/apps/yanpyapi/app/models/secretary.rb:20:in `each'
  38227580       /home/ubuntu/apps/yanpyapi/app/models/secretary.rb:20:in `executeEvents'
  38227580       /home/ubuntu/apps/yanpyapi/config/initializers/task_scheduler.rb:8:in `block in <top (required)>'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/rufus-scheduler-3.0.3/lib/rufus/scheduler/jobs.rb:224:in `call'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/rufus-scheduler-3.0.3/lib/rufus/scheduler/jobs.rb:224:in `do_trigger'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/rufus-scheduler-3.0.3/lib/rufus/scheduler/jobs.rb:269:in `block (3 levels) in start_work_thread'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/rufus-scheduler-3.0.3/lib/rufus/scheduler/jobs.rb:272:in `call'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/rufus-scheduler-3.0.3/lib/rufus/scheduler/jobs.rb:272:in `block (2 levels) in start_work_thread'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/rufus-scheduler-3.0.3/lib/rufus/scheduler/jobs.rb:258:in `loop'
  38227580       /home/ubuntu/.rvm/gems/ruby-2.0.0-p451/gems/rufus-scheduler-3.0.3/lib/rufus/scheduler/jobs.rb:258:in `block in start_work_thread'
} 38227580 .

ฉันเห็นข้อความปฏิเสธการเชื่อมต่อ ฉันคิดว่าฉันควรกำหนดค่าข้อมูลรับรองความปลอดภัยหรือเปิดพอร์ตบางพอร์ต... แต่ฉันไม่รู้

อัปเดต

เพื่อให้มีรายละเอียดเพิ่มเติม บริการอีเมลของฉันให้บริการโดย Zoho ฉันกำหนดค่าบางบัญชีแล้ว ฉันกำหนดค่าชุดระเบียน MX สองชุดใน AWS ด้วย Route 53 เมลใช้งานได้ ฉันหมายถึงฉันสามารถส่งและรับอีเมลจากบัญชีอื่น เช่น gmail หรือ hotmail ไปยังบัญชี zoho ของฉันได้ และอย่างที่ฉันบอกไปแล้วว่าบริการอีเมลกำลังทำงานร่วมกับบัญชีเหล่านี้ที่กำลังพัฒนา (ซึ่งเป็นอีกอูบุนตู)


person Rober    schedule 22.05.2014    source แหล่งที่มา
comment
คุณพยายามส่งอีเมลอย่างไร   -  person datasage    schedule 22.05.2014
comment
ฉันไม่รู้ว่าคุณหมายถึงอะไร ฉันใช้คลาส EmailService ที่ขยาย ActionMailer ใน Rails ฉันไม่รู้ว่ามันทำงานอย่างไรเบื้องหลัง ฉันรู้แค่ว่ามันทำงานได้อย่างสมบูรณ์แบบในสภาพแวดล้อมการพัฒนาของฉัน ฉันสามารถโพสต์โค้ดได้ แต่ฉันคิดว่ามันไม่เกี่ยวข้องกับโค้ด   -  person Rober    schedule 22.05.2014
comment
ฉันคิดว่าคุณไม่ได้อยู่ในสภาพแวดล้อมการแสดงละครของคุณบน ec2? คุณได้กำหนดการตั้งค่าเมลของคุณสำหรับสภาพแวดล้อมที่ไม่ใช่การจัดเตรียมแล้วหรือยัง?   -  person Freddy Wetson    schedule 23.05.2014
comment
แม้ว่าเรากำลังทำการทดสอบ แต่มันจะเป็นสภาพแวดล้อมการใช้งานจริง ฉันไม่ได้กำหนดค่าอะไรที่เกี่ยวข้องกับอีเมล ฉันควรกำหนดค่าอะไร? โอเค ฉันคิดว่าฉันต้องอ่านเกี่ยวกับ SES ใช่ไหม   -  person Rober    schedule 23.05.2014
comment
ไม่ @UriAgassi ทั้งสองโพสต์เป็นของฉัน แต่มันเสริมกัน อันนี้สำหรับข้อผิดพลาดรายละเอียดทางเทคนิค อีกอันหนึ่งสำหรับแนวคิด   -  person Rober    schedule 26.05.2014


คำตอบ (1)


คุณกำลังเรียกใช้แอปพลิเคชันนี้จากภายใน VPC หรือไม่ หากเป็นเช่นนั้น ให้ตรวจสอบว่ากลุ่มความปลอดภัยของอินสแตนซ์ NAT ของคุณอนุญาตการรับส่งข้อมูลขาเข้า/ขาออกของ SMTP หากเป็นอินสแตนซ์ EC2 แบบคลาสสิก ให้ทำเช่นเดียวกันใน SG ของอินสแตนซ์ของคุณ

person ma.tome    schedule 22.05.2014