In Files
Parent
Information
Class Index
![show/hide quicksearch [+]](../assets/icon/find.png)
- Ratch
- Ratch::Batch
- Ratch::CLI
- Ratch::ConfigUtils
- Ratch::Console
- Ratch::EmailUtils
- Ratch::Emailer
- Ratch::FTPUtils
- Ratch::FileList
- Ratch::FileNotFound
- Ratch::Help
- Ratch::POMUtils
- Ratch::RDocUtils
- Ratch::Script
- Ratch::Shell
- Ratch::System
- Ratch::TarUtils
- Ratch::XDGUtils
- Ratch::ZlibUtils
- FileTest
- Hash
- NilClass
- Object
- String
Emailer
Emailer class makes it easy send out an email.
Settings:
subject Subject of email message.
from Message FROM address [email].
to Email address to send announcemnt.
server Email server to route message.
port Email server's port.
port_secure Email server's port.
domain Email server's domain name.
account Email account name if needed.
password Password for login..
login Login type: plain, cram_md5 or login [plain].
secure Uses TLS security, true or false? [false]
message Mesage to send -or-
file File that contains message.
Attributes
Public Class Methods
environment_options()
click to toggle source
# File lib/ratch/utils/email.rb, line 61
61: def environment_options
62: options = {}
63: options[:server] = ENV['EMAIL_SERVER']
64: options[:from] = ENV['EMAIL_FROM']
65: options[:account] = ENV['EMAIL_ACCOUNT'] || ENV['EMAIL_FROM']
66: options[:password] = ENV['EMAIL_PASSWORD']
67: options[:port] = ENV['EMAIL_PORT']
68: options[:domain] = ENV['EMAIL_DOMAIN']
69: options[:login] = ENV['EMAIL_LOGIN']
70: options[:secure] = ENV['EMAIL_SECURE']
71: options
72: end
new(options={})
click to toggle source
# File lib/ratch/utils/email.rb, line 95
95: def initialize(options={})
96: require_smtp
97:
98: options = options.rekey
99:
100: if not options[:server]
101: options = self.class.environment_options.merge(options)
102: end
103:
104: @mailto = options[:to] || options[:mailto]
105:
106: @from = options[:from]
107: @message = options[:message]
108: @subject = options[:subject]
109: @server = options[:server]
110: @account = options[:account]
111: @passwd = options[:password]
112: @login = options[:login]
113: @secure = options[:secure] #.to_b
114: @domain = options[:domain]
115: @port = options[:port]
116:
117: @port ||= secure ? 465 : 25
118: @port = @port.to_i
119:
120: @account ||= @from
121:
122: @login ||= :plain
123: @login = @login.to_sym
124:
125: @passwd ||= self.class.password
126:
127: @domain ||= @server
128:
129: # save the password for later use
130: self.class.password = @passwd
131: end
Public Instance Methods
email(options={})
click to toggle source
# File lib/ratch/utils/email.rb, line 135
135: def email(options={})
136: options.rekey
137:
138: message = options[:message] || self.message
139: subject = options[:subject] || self.subject
140: from = options[:from] || self.from
141: mailto = options[:mailto] || options[:to] || self.mailto
142:
143: raise ArgumentError, "missing email field -- server" unless server
144: raise ArgumentError, "missing email field -- account" unless account
145:
146: raise ArgumentError, "missing email field -- from" unless from
147: raise ArgumentError, "missing email field -- mailto" unless mailto
148: raise ArgumentError, "missing email field -- subject" unless subject
149:
150: passwd ||= password("#{account} password:")
151:
152: mailto = [mailto].flatten.compact
153:
154: msg = ""
155: msg << "From: #{from}\n"
156: msg << "To: #{mailto.join(';')}\n"
157: msg << "Subject: #{subject}\n"
158: msg << ""
159: msg << message
160:
161: #p server, port, domain, account, passwd, login, secure if verbose?
162:
163: begin
164: if Net::SMTP.respond_to?(:enable_tls) && secure
165: Net::SMTP.enable_tls
166: Net::SMTP.start(server, port, domain, account, passwd, login, secure) do |smtp|
167: smtp.send_message(msg, from, mailto)
168: end
169: else
170: Net::SMTP.start(server, port, domain, account, passwd, login) do |smtp|
171: smtp.send_message(msg, from, mailto)
172: end
173: end
174: return mailto
175: rescue Exception => e
176: return e
177: end
178: end
password(msg=nil)
click to toggle source
Ask for a password.
FIXME: Does not hide password.
# File lib/ratch/utils/email.rb, line 184
184: def password(msg=nil)
185: msg ||= "Enter Password: "
186: inp = ''
187:
188: $stdout << msg
189:
190: inp = STDIN.gets.chomp
191:
192: #begin
193: # system "stty -echo"
194: # inp = gets.chomp
195: #ensure
196: # system "stty echo"
197: #end
198:
199: return inp
200: end
Disabled; run with --debug to generate this.