Comment envoyer du courrier depuis un programme Ruby ?
Question
Je souhaite envoyer un e-mail à partir d'une application Ruby.Existe-t-il un appel dans le langage principal pour ce faire ou existe-t-il une bibliothèque que je devrais utiliser ?Quelle est la meilleure façon de procéder ?
La solution
Si vous ne voulez pas utiliser ActionMailer vous pouvez utiliser Réseau : SMTP (pour l'envoi proprement dit) avec tmail pour créer facilement des emails (avec plusieurs parties, etc.).
Autres conseils
require 'net/smtp'
SMTP_SERVER = 'mailserver01' #change to your server
def send_emails(sender_address, recipients, subject, message_body)
recipients.each do |recipient_address|
message_header =''
message_header << "From: <#{sender_address}>\r\n"
message_header << "To: <#{recipient_address}>\r\n"
message_header << "Subject: #{subject}\r\n"
message_header << "Date: " + Time.now.to_s + "\r\n"
message = message_header + "\r\n" + message_body + "\r\n"
Net::SMTP.start(SMTP_SERVER, 25) do |smtp|
smtp.send_message message, sender_address, recipient_address
end
end
end
send_emails('sender@domain.com',['recip1@test.com', 'recip2@other.com'],'test Email',"Hi there this is a test email hope you like it")
Je utilise l Réseau : SMTP bibliothèque
Vous pourriez également envisager de jeter un œil au ActionMailer composant qui est livré avec Rails, mais n'en dépend pas.
RubyMail est une bibliothèque de gestion de courrier électronique pour Ruby.
Je sais que c'est une réponse tardive à cette question, mais celle-ci vient d'être publiée :
http://adam.blog.heroku.com/past/2008/11/2/pony_the_express_way_to_send_email_from_ruby/
Cela pourrait être utile.