【问题标题】:Net::SMTPSyntaxError网络::SMTPSyntaxError
【发布时间】:2014-08-13 14:44:31
【问题描述】:

我正在使用 rails3.0.6 和 ruby​​ 1.8.7,我可以轻松地从我的应用程序开发模式发送电子邮件。但昨晚我尝试向我的客户电子邮件发送邮件时看到一个新错误,该邮件与我的多态相关联发票模型。错误是:

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 => "support@thenextwave.in", :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

任何帮助都会非常感谢..

【问题讨论】:

    标签: ruby-on-rails-3 smtp


    【解决方案1】:

    我想出了一个解决方案,我在邮件中的email.rb 文件中出错了:

    def send_invoice(invoice)
      email = '@invoice.account.accountable.email'
      mail(:to => email, :from => "support@thenextwave.in", :subject=>"Invoice, check it.") 
    end
    

    应该是:

    def send_invoice(invoice)
      email = invoice.account.accountable.email 
      mail(:to => email, :from => "support@thenextwave.in", :subject=>"Invoice, check it.") 
    end
    

    现在我可以轻松发送电子邮件了..

    【讨论】:

    • 我在邮件文件中不接受的电子邮件地址的字符串,现在我已经更新了我的代码
    • '@invoice.account.accountable.email' 是一个字符串文字。 "#{@invoice.account.accountable.email}" 会起作用,但使用插值是没有意义的。
    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多