【发布时间】:2010-11-15 02:41:46
【问题描述】:
我正在尝试使用 Ruby 脚本发送电子邮件,但我的概念证明不起作用。我可以 telnet 到邮件服务器并以这种方式发送邮件,但是此脚本会导致邮件服务器引发错误: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,邮件服务器是交换服务器。
我不明白为什么 telnet 使用相同的值,但是这个脚本会引发无效地址错误。
有人可以帮帮我吗?
编辑:上面的代码现在可以正常工作了,我最初在最终方法调用中省略了逗号。我觉得自己像个白痴。
【问题讨论】: