我試圖用Ruby腳本發送電子郵件,但是我的概念證明不起作用。我可以遠程登錄到郵件服務器併發送郵件這種方式,但此腳本導致郵件服務器引發錯誤:501 5.5.4 Invalid Address
用Ruby腳本發送電子郵件 - 501 5.5.4無效地址
#!/usr/bin/ruby
require 'net/smtp'
def send_email(to, subject = "", body = "")
from = "[email protected]"
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 "[email protected]", "test", "blah blah blah"
在我的實際腳本,[email protected]
是一個有效的電子郵件。 192.168.10.213
是郵件服務器,192.168.0.218
是我的本地ip。請注意,我正在運行Windows XP,並且郵件服務器是交換服務器。
我不明白爲什麼telnet使用相同的值,但此腳本引發無效的地址錯誤。
有人可以幫我嗎?
編輯:上面的代碼現在工作正常,我最初在最後的方法調用中省略了逗號。我覺得自己像個白癡。
謝謝,但我的機器名稱和我的電子郵件地址是完全有效的,沒有奇怪的字符,沒有前導或尾隨的空白或點。雖然我的機器名稱有一個破折號,但更改我的計算機名稱是一件麻煩事,因爲我在公司網絡中。短跑會成爲問題嗎?請記住,telnet的作品! – 2009-07-29 15:06:09
短劃線應該沒問題,但下劃線對域無效。您可能需要查看SMTP流量才能查看服務器實際正在查看的內容 - 可能不是您認爲它所看到的內容。 – 2009-07-29 15:35:20