Отправка электронной почты с помощью сценария Ruby - 501 5.5.4 Неверный адрес

StackOverflow https://stackoverflow.com/questions/1200882

  •  05-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь отправить электронное письмо со скриптом на 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. Смотрите фрагмент здесь .

В вашем коде есть ошибка. Злонамеренный пользователь может вставить больше заголовков в вашу электронную почту, используя новые строки в теме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top