2013-08-18 68 views
5

Tôi đang sử dụng ActionMailer để gửi thư cho biểu mẫu 'Liên hệ với chúng tôi' trong đơn đăng ký của tôi.
Tôi đang sử dụng ứng dụng giống phi phi cho việc gửi emails.These của tôi là xác lập cá nhân:Gửi thư bằng máy chủ ActionMailer và Outlook/Mandrillapp SMTP

config/môi trường/development.rb

config.action_mailer.perform_deliveries = true 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :address    => "smtp.mandrillapp.com", 
    :port     => 587, 
    :enable_starttls_auto => true, 
    :user_name   => 'SMTP username i.e Mandrill a/c username', 
    :password    => 'API key for development', 
    :domain    => 'example.com', 
    :authentication  => 'plain' 
    } 

config/môi trường/production.rb

Tôi có đã xóa dòng
config.action_mailer.raise_delivery_errors = true
và thay đổi mật khẩu cho sản xuất - đó là khóa API ứng dụng Mandrill cho sản xuất.

app/bưu phẩm/contactus_mailer.rb

class ContactusMailer < ActionMailer::Base 

    default :from => "[email protected]" 
    default :to => "[email protected]" 

    def new_message(message) 
    @message = message 
    mail(:subject => "[WebsiteName] #{message.name + " - " + message.email}") 
    end 

end 

Hiệu lực của các tài khoản ở trên miền tùy chỉnh - example.com

Các tài khoản email trên tức là [email protected] & [email protected] được cung cấp và đầy đủ chức năng. Các tài khoản ở trên được thiết lập tại Outlook.com và tôi cũng đã kiểm tra kỹ các bản ghi MX cho tên miền của tôi example.com và cài đặt miền đang Hoạt động cho miền của tôi. Để chứng minh, tôi có thể gửi/nhận email trên cả hai tài khoản từ các tài khoản.

phát triển và môi trường sản xuất Logs:

Khi tôi sử dụng biểu mẫu Liên hệ trong cả hai môi trường, ActionMailer báo cáo không có lỗi và chuyển hướng thành công trang Home.

Started POST "/contact" for 127.0.0.1 at 2013-08-18 12:35:37 +0530 
Processing by MessagesController#create as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"UNgMrA04yk4sIbqtXjlLvLvDINgrBT5eP0wMSRYNgPs=", "message"=>{"name"=>"Dummy name", "email"=>"[email protected]", "content"=>"Random body"}, "commit"=>"Send Message"} 
    Rendered contactus_mailer/new_message.text.erb (0.5ms) 

Sent mail to [email protected] (2679ms) 
Date: Sun, 18 Aug 2013 12:35:38 +0530 
From: [email protected] 
To: [email protected] 
Message-ID: <[email protected]l> 
Subject: [WebsiteName] Dummy name - [email protected] 
Mime-Version: 1.0 
Content-Type: text/plain; 
charset=UTF-8 
Content-Transfer-Encoding: 7bit 

Name: Dummy name  
Email: [email protected] 
Body: Random body 

Redirected to http://localhost:3000/ 
Completed 302 Found in 3841ms (ActiveRecord: 0.0ms) 

giống phi phi App log API cho môi trường sản xuất:

Full Yêu cầu:

{ 
    "from_email": null, 
    "from_name": null, 
    "async": false, 
    "key": "API key for production", 
    "raw_message": "Received: from example.com (unknown [23.20.245.109])\n\t(Authenticated sender: [email protected])\n\tby ip-10-31-147-25 (Postfix) with ESMTPSA id 6811A151A064\n\tfor <[email protected]>; Sun, 18 Aug 2013 08:19:11 +0000 (UTC)\nDate: Sun, 18 Aug 2013 08:19:11 +0000\nFrom: [email protected]\nTo: [email protected]\nMessage-ID: <[email protected]mail>\nSubject: [WebsiteName] Dummy name - [email protected]\nMime-Version: 1.0\nContent-Type: text/plain;\n charset=UTF-8\nContent-Transfer-Encoding: 7bit\n\nName: Dummy name\n\nEmail: [email protected]\n\nBody: Random body", 
    "to": [ 
     "[email protected]" 
    ] 
} 

Full đáp ứng:

[ 
    { 
     "email": "[email protected]", 
     "status": "rejected", 
     "_id": "9c9f88c588ee4f369437b8dd5d531c8c", 
     "reject_reason": "soft-bounce" 
    } 
] 

giống phi phi App log API cho môi trường phát triển:

Yêu cầu đầy đủ để phát triển env. tương tự như môi trường sản xuất. Tuy nhiên, trong phát triển, phản ứng là khác nhau.
Full đáp ứng:

[ 
    { 
     "email": "[email protected]", 
     "status": "sent", 
     "_id": "e67f31f893a84ecdb0ed2438e5741ce1", 
     "reject_reason": null 
    } 
] 

LƯU Ý: tôi không nhận được email trên tài khoản của tôi [email protected] trong cả hai môi trường phát triển và sản xuất.
Queries:

  1. Tại sao tôi bị từ chối tình trạng và mềm thư bị trả lại từ chối vì lý do cho env sản xuất, trong khi phát triển nó nói gửi tình trạng và không có lý do từ chối..

  2. Tại sao tôi không nhận được bất kỳ thư nào trong cả hai trường hợp?

P.S.
Ban đầu, tôi không sử dụng Mandrill app và đang sử dụng smtp.live.com làm máy chủ SMTP của mình cùng với thông tin đăng nhập no [email protected] của mình, nhưng điều đó không thành công. Sau đó, tôi chuyển sang Mandrill sau một số lần tìm kiếm trên Google.
Sẽ tốt hơn nếu ai đó có thể trợ giúp thiết lập thư Outlook. Bằng cách đó, Mandrill sẽ không được yêu cầu cả.

Trả lời

2

Tôi đã làm việc đó với và không có Mandrill. Tôi đã không nhận được bất kỳ email nào cho đến 7 ngày sau đó, hộp thư đến của tôi bị tràn ngập tất cả các email thử nghiệm của tôi.

Dường như đã xảy ra sự cố với DNS, bản ghi TXT cho tài khoản email của tôi, điều này đã gây ra sự chậm trễ.

Cũng đã thử mà không có Mandrill và thư được gửi đúng cách. Vì vậy, hãy đăng các cài đặt cho Outlook tại đây. Có thể có ích cho người khác.

config.action_mailer.perform_deliveries = true 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :address    => "smtp.live.com", 
    :port     => 587, 
    :enable_starttls_auto => true, 
    :user_name   => '[email protected]', 
    :password    => 'password', 
    :domain    => 'example.com', 
    :authentication  => 'plain' 
} 

Lưu ý: Để sử dụng trong sản xuất, thiết lập raise_delivery_errors để sai.

+0

Tôi đang sử dụng cài đặt chính xác này và tôi đang gặp lỗi ssl. Bạn đã có một ssl cert. cho tên miền của bạn? –

+0

@TommyAdey: Không. Tôi không có chứng chỉ SSL. Bạn có thể vui lòng giải thích vấn đề của bạn ít hơn. –

+0

Mỏ nói OpenSSL :: SSLError - SSL_read: sai số phiên bản. Tôi đã cố gắng nhiều ngày nhưng nó vẫn không hoạt động. Tôi cũng đã thử: openssl_verify_mode => 'none'. –

3

Bạn có

config.action_mailer.default_url_options = { 
    :host => 'YOUR_HOST_NAME_HERE' 
    } 

quy định tại application.rb hoặc production.rb? Nó sẽ được đặt thành tên miền của bạn. Tôi đã tìm thấy một số máy chủ sẽ từ chối thư mà không có tên máy chủ được xác định rõ ràng.

+0

Cảm ơn, nhưng đó là sự cố tạm thời với bản ghi TXT của tôi đã gây ra sự chậm trễ trong thư. –

Các vấn đề liên quan