2015-05-03 2 views
0

Это странная проблема,Получатель будет заменен по умолчанию от

Сначала я мог бы отправить почту через mailgun,

Но теперь ожидаемый получатель bill.email будет заменен [email protected]#{ENV['mailgun_domain']}

Я совершенно не знаю. потому что код не изменился

class BillMailer < ActionMailer::Base 
    default from: "[email protected]#{ENV['mailgun_domain']}" 
    def confirm_bill(bill, cart) 
    mail(to: bill.email, cc: "[email protected]") 
    end 
end 

Я напечатал mail объект, все выглядит нормально

#<Mail::Message:70158682584200, Multipart: false, Headers: <From: [email protected]>, <To: [email protected]>, <Cc: [email protected]>, <Subject: hihi>, <Mime-Version: 1.0>, <Content-Type: text/html>> 

Но когда я проверил журнал mailgun, мой получатель был заменен [email protected]g, он должен быть мой по умолчанию отправлено из , Я думал, что это ошибка mailgun

"message": { 
    "headers": { 
     "to": "[email protected]g", 
     "message-id": "[email protected]2.local", 
     "from": "[email protected] (Mail Delivery System)", 
     "subject": "Undelivered Mail Returned to Sender" 
    }, 
    "attachments": [], 
    "recipients": [ 
     "[email protected]g" 
    ], 
    "size": 20919 
    }, 
    "recipient": "[email protected]g", 
    "event": "accepted" 

ответ

1

Это вполне допустимое поведение. Если вы наблюдаете свои атрибуты from и subject в своем журнале, вы увидите, что ваш SMTP-сервер (по умолчанию OSX) пытается рассказать вам о доставке почты с ошибкой. Это то, что сделает SMTP-сервер, если он не сможет доставить электронное письмо получателю.

Чтобы исправить это, вам необходимо настроить SMTP-настройки для своего приложения-рельсов. Добавьте следующее в вашем config/environments/development.rb

config.action_mailer.delivery_method = :smtp 
config.action_mailer.smtp_settings = { 
    :authentication => :plain, 
    :address => "smtp.mailgun.org", 
    :port => 587, 
    :domain => "MYDOMAIN.mailgun.org", 
    :user_name => "[email protected]", 
    :password => "MYPASSWORD" 
} 

Заменить :domain, :username и :password с учетными данными mailgun.