Revision 275e20ec
Added by Marc Dequènes almost 16 years ago
- ID 275e20ecd94d3a83477dbec7e39e75ee6f619fee
lib/cyborghood/mail.rb | ||
---|---|---|
require 'tmail'
|
||
require 'tmail_extra'
|
||
require 'gpgme'
|
||
require 'net/smtp'
|
||
|
||
# This class handles RFC3156 signed messages, validates them, and extract orders properly.
|
||
# Encrypted content are not implemented yet.
|
||
module CyborgHood
|
||
class Mail < Delegator
|
||
def initialize(msg)
|
||
@config = Config.instance
|
||
|
||
# unquote headers and transform into TMail object
|
||
@mail = TMail::Mail.parse(TMail::Unquoter.unquote_and_convert_to(msg, "UTF-8"))
|
||
end
|
||
... | ... | |
|
||
nil
|
||
end
|
||
|
||
def create_reply
|
||
mail_reply = @mail.create_reply
|
||
mail_reply.from_addrs = TMail::Address.parse(@config.mail.from_address || self.to.first)
|
||
self.class.new(mail_reply.to_s)
|
||
end
|
||
|
||
def deliver
|
||
smtp_server = @config.mail.smtp_server || "localhost"
|
||
smtp_port = @config.mail.smtp_port || 25
|
||
smtp_from = @mail.from_addrs.collect{|a| a.address}.join(", ")
|
||
smtp_to = @mail.to_addrs.collect{|a| a.address}
|
||
Net::SMTP.start(smtp_server, smtp_port) do |smtp|
|
||
smtp.send_message(@mail.to_s, smtp_from, smtp_to)
|
||
end
|
||
end
|
||
|
||
def to_s
|
||
@mail.to_s
|
||
end
|
||
end
|
||
end
|
Also available in: Unified diff
[evol] create basic mail reply and send it using SMTP