使用Rails 3和Heroku Net发送电子邮件:: SMTPSyntaxError:501语法错误

时间:2011-05-13 23:29:45

标签: ruby-on-rails-3 heroku email-integration

正如标题所说,我正在尝试使用Heroku和Rails 3进行简单的电子邮件。我正在使用此Heroku指南:http://devcenter.heroku.com/articles/smtp

这是我的代码:

我生成了一个看起来像这样的邮件:

class Invite < ActionMailer::Base
  def signup_notification(user)
    recipients "#{user.first_name} <#{user.email}>"
    from       "Test"
    subject    "Please activate your new account"
    sent_on    Time.now
    body       :var => 'testing'
  end
end

我在app/views/invite/signup_notification.rhtml

中有一个视图

更新:我发现.rhtml无法与Rails 3一起使用,所以我只是尝试了.html.erb,但我得到了相同的错误

Your account has been created.
Username: 
Password: 
Visit this url to activate your account:

然后在Heroku控制台中我这样做了:

user = User.new(:first_name => 'Me', :email => 'me@hotmail.com', :login => 'me', :password => '1234')

然后这个:

Invite.deliver_signup_notification(user)

如果收到此错误:

Net::SMTPSyntaxError: 501 Syntax error
  /user/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:930:in `check_response`
  /user/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:899:in `getok`
  /user/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:828:in `mailfrom`
  /user/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:653:in `sendmail`

感谢任何想法。

4 个答案:

答案 0 :(得分:18)

您的from无效。请尝试使用'test@example.com'。

答案 1 :(得分:1)

Heroku指南适用于Rails&lt; 3.0。使用Rails guide for 3.0。

答案 2 :(得分:1)

如果要在from中显示自定义字符串,则可以使用

之类的内容
from  "Test <info@domain.com>"

当您发送电子邮件标题时将是测试

答案 3 :(得分:0)

如果发件人地址不正确,则会引发

Net::SMTPSyntaxError 501错误。 发件人地址应为电子邮件地址。任何假电子邮件也会这样做。喜欢:abc@fakemail.com