Envío de correo electrónico con un script Ruby - 501 5.5.4 Dirección no válida
Pregunta
Estoy tratando de enviar un correo electrónico con un script de Ruby, pero mi prueba de concepto no funciona. Puedo telnet al servidor de correo y enviar correo de esa manera, pero esta secuencia de comandos hace que el servidor de correo genere un error: 501 5.5.4 Dirección no válida
#!/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"
En mi script real, my@email.com
es un correo electrónico válido. 192.168.10.213
es el servidor de correo y 192.168.0.218
es mi ip local. Tenga en cuenta que estoy ejecutando Windows XP, y el servidor de correo es un servidor de intercambio.
No entiendo por qué telnet funciona con los mismos valores, pero este script genera un error de dirección no válida.
¿Alguien puede ayudarme?
EDITAR : el código anterior ahora funciona bien, originalmente omití las comas en la llamada al método final. Me siento como un idiota.
Solución 3
¿Puedes creerlo? Me siento como un idiota, solo me faltan comas en la llamada al método ...
send_email " my@email.com" ;, " test " ;, " blah blah blah "
Estoy avergonzado.
De todos modos, el código anterior funciona muy bien si alguien está interesado. Simplemente no omita las comas como lo hice yo.
Otros consejos
Asegúrese de que su dirección de correo electrónico real no contenga caracteres no válidos. Por ejemplo, consulte esta pregunta .
Recomiendo Action Mailer para enviar correos con Ruby. Vea un fragmento aquí .
Hay un error en su código. Un usuario malintencionado podría insertar más encabezados en su correo electrónico utilizando nuevas líneas en el asunto.