发送电子邮件与Ruby脚本 - 501个5.5.4无效地址(Sending email with

2019-09-21 07:36发布

我试图用Ruby脚本发送电子邮件,但我的概念证明是行不通的。 我可以远程登录到邮件服务器并发送邮件这种方式,但此脚本导致邮件服务器引发错误: 501 5.5.4 Invalid Address

#!/usr/bin/ruby

require 'net/smtp'

def send_email(to, subject = "", body = "")
    from = "my@email.com"
    body= "From: #{from}\r\nTo: #{to}\r\nSubject: #{subject}\r\n\r\n#{body}\r\n"

    Net::SMTP.start('192.168.10.213', 25, '192.168.0.218') do |smtp|
        smtp.send_message body, from, to
    end
end

send_email "my@email.com", "test", "blah blah blah"

在我的实际脚本, my@email.com是一个有效的电子邮件。 192.168.10.213是邮件服务器和192.168.0.218是我的本地IP。 请注意,我运行Windows XP,和邮件服务器是一个Exchange服务器。

我不明白为什么远程登录具有相同价值观的作品,但这个脚本引发无效地址错误。

有人可以帮我吗?

编辑 :上面的代码现在工作得很好,我原本遗漏了在最后的方法调用的逗号。 我觉得自己像个白痴。

Answer 1:

确保您的真实电子邮件地址不包含无效字符。 例如,看到这个问题 。



Answer 2:

我建议行动梅勒与红宝石发送邮件。 见一个片段在这里 。



Answer 3:

你相信吗? 我觉得在方法调用像一个白痴,我只是缺少逗号......

send_email "my@email.com", "test", "blah blah blah"

我很尴尬。

总之,上面的代码的伟大工程,如果有人有兴趣。 只是不要离开了逗号,像我一样。



Answer 4:

有一个在你的代码中的bug。 恶意用户可以通过在主题用新行插入更多标题到您的电子邮件。



文章来源: Sending email with a Ruby script - 501 5.5.4 Invalid Address
标签: ruby email smtp