6
class SupportMailer < ActionMailer::Base 
    default :from => "[email protected]" 

    def welcome_email(ticket) 
    case ticket.game 
    when "gameone" 
     @ticket = ticket 
     headers["Reply-to"] = "email1+#{ticket.token}@gmail.com" 
     headers["Return-Path"] = "email1+#{ticket.token}@gmail.com" 
     mail(:from => "[email protected]", :to => ticket.email, :subject => "Welcome to 1 Support Ticket") 
    when "gametwo" 
     @ticket = ticket 
     headers["Reply-to"] = "email2+#{ticket.token}@gmail.com" 
     headers["Return-Path"] = "email2+#{ticket.token}@gmail.com" 
     mail(:from => "[email protected]", :to => ticket.email, :subject => "Welcome to 2 Support Ticket") 
    when "gamethree" 
     @ticket = ticket 
     headers["Reply-to"] = "email3+#{ticket.token}@gmail.com" 
     header["Return-Path"] = "email3+#{ticket.token}@gmail.com" 
     mail(:from => "[email protected]", :to => ticket.email, :subject => "Welcome to 3 Support Ticket") 
    end 
    end 
end 

Tôi đã đặt mặc định: từ, vì vậy tôi không hiểu tại sao tôi vẫn nhận được thông báo này, tôi cũng cố gắng đặt thông qua tiêu đề để không có kết quả.Tiếp tục yêu cầu Người gửi (Đường dẫn trở lại, Người gửi hoặc Từ) bắt buộc để gửi tin nhắn

đây là xác lập cá nhân

ActionMailer::Base.smtp_settings = { 
    :address    => "smtp.gmail.com", 
    :port     => 587, 
    :domain    => "gmail.com", 
    :user_name   => "[email protected]", 
    :password    => "password", 
    :authentication  => "plain", 
    :enable_starttls_auto => true 
} 

tôi chỉ gọi nó như vậy, SupportMailer.support_response(@message).deliver

Làm thế nào để sửa lỗi này?

+0

Các tiêu đề chắc chắn không cần thiết; mã có vẻ đúng, và trong trường hợp của bạn, 'default: from' bị ghi đè bởi giá trị trong lời gọi đến phương thức' mail'. Tôi sẽ nhìn ngược dòng nơi giao hàng! phương pháp được gọi là, hoặc có lẽ trong các tập tin môi trường. Lỗi xuất phát từ một trong những bài kiểm tra đầu tiên sau khi phân phối! trong mô-đun smtp. –

+0

Tôi đã xem bộ điều khiển của mình. có vẻ ok. và các cấu hình của tôi trông ổn. tôi sẽ gửi cho họ –

+0

Tôi đã thêm dòng này các phương thức 'tiêu đề" đường dẫn trả về "=>" [email protected] "' và bây giờ nó đang phàn nàn về 'Ít nhất một người nhận (Tới, Cc hoặc Bcc) được yêu cầu để gửi một tin nhắn', có vẻ như 'mail (...)' không nhận được thông số của nó. –

Trả lời

3

Tôi nhận thấy bạn không có trường hợp mặc định cho tuyên bố trường hợp. Nếu bạn không bao giờ kết thúc gọi phương thức "mail" bên trong các phương thức của bạn trong lớp Mailer, bạn sẽ nhận được lỗi đó. Hãy thử di chuyển trường hợp của bạn ra ngoài đến nơi bạn gọi SupportMailer, có thể có phương pháp cho từng trường hợp. Bằng cách đó bạn không bao giờ gọi cho SupportMailer trừ khi bạn đã xác định đúng trò chơi vé.

+3

Lý do là kéo logic ra khỏi bưu phẩm Nếu bạn không muốn, bạn luôn có thể làm: 'self.message.perform_deliveries = false' nếu bạn quyết định hủy bỏ việc gửi, không gọi lại vì nó sẽ tiếp tục thực hiện và ném cùng một lỗi. – brupm

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