Я использую rails3.0.6 и ruby 1.8.7, я могу легко отправлять электронную почту из моего режима разработки приложений. Но вчера вечером я увидел новую ошибку, когда пытался отправить почту на адрес электронной почты своих клиентов полиморфный, связанный с моей моделью счета. Ошибка:Net :: SMTPSyntaxError
Net::SMTPSyntaxError in InvoicesController#email_invoice
501 <@invoice.account.accountable.email>: missing or malformed local part
Мой код для email.rb файла:
def send_invoice(invoice)
email = '@invoice.account.accountable.email'
mail(:to => email, :from => "[email protected]", :subject=>"Invoice, check it.")
end
и в моем invoice controller
я сделал:
def email_invoice
@company = Company.find(User.find(session[:current_user_id]))
@invoice = Invoice.find(params[:id])
@invoice_line_items = @invoice.invoice_line_items
@receipt_vouchers = @invoice.receipt_vouchers
#email = @invoice.account.accountable.email
Email.send_invoice(@invoice).deliver
redirect_to invoice_path(@invoice)
flash[:success] = 'Email has been sent successfully.'
end
я выпучил этой ошибки и найти, что это причины из-за неправильных адресов электронной почты и неправильных настроек SMTP, но настройки моего SMTP в порядке, так как я могу отправлять электронную почту из своего приложения, но имеет проблемы с приведенной ниже строкой:
@invoice.account.accountable.email
любая помощь будет thaknful ..
Я сделал строку для адрес электронной почты, который не принят в почтовом файле, теперь я обновил свой код – Ravindra
'@ invoice.account.accountable.email' является строковым литералом. "#{@invoice.account.accountable.email}" будет работать, хотя нет смысла использовать интерполяцию. –