Отправка электронной почты с помощью сценария Ruby - 501 5.5.4 Неверный адрес
Вопрос
Я пытаюсь отправить электронное письмо со скриптом на Ruby, но мои концепции не работают. Я могу подключиться к почтовому серверу и отправлять почту таким способом, но этот скрипт заставляет почтовый сервер выдавать ошибку: 501 5.5.4 Неверный адрес
#!/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 работает с теми же значениями, но этот скрипт вызывает ошибку неверного адреса.
Кто-нибудь может мне помочь?
РЕДАКТИРОВАТЬ . Приведенный выше код теперь работает нормально, я изначально пропустил запятые в последнем вызове метода. Я чувствую себя идиотом.
Решение 3
Вы можете в это поверить? Я чувствую себя идиотом, мне просто не хватает запятых в вызове метода ...
send_email " my@email.com" ;, " test " ;, " бла-бла-бла "
Я смущен.
В любом случае, приведенный выше код отлично работает, если кому-то интересно. Просто не пропускайте запятые, как я.
Другие советы
Убедитесь, что ваш фактический адрес электронной почты не содержит недопустимых символов. Например, см. этот вопрос . р>
Я бы порекомендовал Action Mailer для отправки писем с помощью Ruby. Смотрите фрагмент здесь .
В вашем коде есть ошибка. Злонамеренный пользователь может вставить больше заголовков в вашу электронную почту, используя новые строки в теме.