Question

J'essaie d'envoyer un courrier électronique avec un script Ruby, mais ma preuve de concept ne fonctionne pas. Je peux établir une connexion telnet avec le serveur de messagerie et envoyer du courrier de cette façon, mais ce script provoque une erreur du serveur de messagerie: 501 5.5.4 Adresse non valide

#!/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"

Dans mon script actuel, mon@email.com est un courrier électronique valide. 192.168.10.213 est le serveur de messagerie et 192.168.0.218 est mon adresse IP locale. Notez que j'utilise Windows XP et que le serveur de messagerie est un serveur d'échange.

Je ne comprends pas pourquoi telnet fonctionne avec les mêmes valeurs, mais ce script génère l'erreur d'adresse non valide.

Quelqu'un peut-il m'aider?

MODIFIER : le code ci-dessus fonctionne désormais correctement. À l'origine, j'avais oublié les virgules dans l'appel de méthode final. Je me sens comme un idiot.

Était-ce utile?

La solution 3

Tu peux le croire? Je me sens idiot, il me manque juste des virgules dans l'appel de méthode ...

send_email "my@email.com" ;," test "," bla bla blah "

Je suis embarrassé.

Quoi qu'il en soit, le code ci-dessus fonctionne très bien si quelqu'un est intéressé. Ne laissez pas les virgules comme moi.

Autres conseils

Assurez-vous que votre adresse électronique actuelle ne contient pas de caractères non valides. Par exemple, consultez cette question . / p>

Je recommanderais Action Mailer pour l'envoi de courrier électronique avec Ruby. Voir un extrait ici .

Il y a un bug dans votre code. Un utilisateur malveillant pourrait insérer plusieurs en-têtes dans votre courrier électronique en utilisant des nouvelles lignes dans le sujet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top