Trong một ứng dụng Rails tôi thiết lập một môi trường dàn dựng mới với các thông số sau trong environments/
tập tin của nó:Kiểm soát khai thác gỗ và gửi email trong các môi trường khác nhau
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
Tuy nhiên, khi hệ thống tạo một email, nó được in ra tệp staging.log
thay vì được gửi. Cài đặt SMTP của tôi hoạt động tốt trong các môi trường khác. Tôi thiếu cấu hình nào để nhận email thực sự gửi?
Chỉnh sửa: Có, hộp dàn dựng được thiết lập với cấu hình hợp lệ cho máy chủ SMTP có quyền truy cập. Có vẻ như vấn đề không phải là với các thiết lập SMTP (nếu nó được, tôi sẽ không nhận được lỗi trong các bản ghi?), Nhưng với cấu hình Rails. Ứng dụng vẫn đang chuyển hướng email tới tệp nhật ký (nói "Đã gửi thư: ...") thay vì thực sự đi qua SMTP.
Chỉnh sửa # 2: Có vẻ như các email thực sự đã được gửi chính xác, chúng cũng chỉ xảy ra để in vào nhật ký. Tôi đang cố gắng sử dụng đá quý sanitize_email
để chuyển hướng thư đến địa chỉ khác và điều đó dường như không hoạt động, đó là lý do tại sao tôi cho rằng các email đó không bị xóa. Vì vậy, tôi nghĩ rằng giải quyết vấn đề của tôi, mặc dù tôi vẫn còn tò mò những gì trong cài đặt ActionMailer kiểm soát email được gửi, đăng nhập vào tập tin đăng nhập, hoặc cả hai.
Chỉnh sửa # 3: Sự cố với sanitize_email
đun sôi xuống để tôi cần thêm môi trường dàn dựng mới vào ActionMailer::Base.local_environments
. Tôi sẽ giữ câu hỏi này mở để xem liệu có ai có thể trả lời câu hỏi cuối cùng của tôi (điều gì xác định xem email của ActionMailer có được gửi đi, đăng nhập vào tệp nhật ký hay không?)
Hộp dàn trang của bạn có máy chủ SMTP đang hoạt động không? – jdl
Bạn đã đặt config.action_mailer.smtp_settings với localhost, cổng 25 và một số miền chưa? – marko