21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/hoe/email.rb', line 21
def define_email_tasks
require 'net/smtp'
begin
require 'smtp_tls'
rescue LoadError
end
task :announce => :send_email
desc "Send an announcement email."
task :send_email do
warn "sending email"
message = generate_email :full
with_config do |conf, _|
host = conf["email"]["host"]
port = conf["email"]["port"]
user = conf["email"]["user"]
pass = conf["email"]["pass"]
auth = conf["email"]["auth"]
tls = conf["email"]["tls"]
port = Socket.getservbyname port unless Integer === port
tls = port != 25 if tls.nil?
start_args = [Socket.gethostname, user, pass, auth].compact
raise 'gem install smtp_tls' if tls and
not Net::SMTP.method_defined? :starttls
smtp = Net::SMTP.new(host, port)
smtp.set_debug_output $stderr if $DEBUG
smtp.enable_starttls if tls
smtp.start(*start_args) do |server|
server.send_message message, Array(email).first, *email_to
end
end
warn "...done"
end
end
|