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
|
# File 'lib/mailmerge.rb', line 27
def merge
if ARGV[0] == "-h"
puts "usage: mailmerge [csv] [erb] [from_addr] [password]"
exit
end
smtp = Net::SMTP.new 'smtp.gmail.com', 587
smtp.enable_starttls
arr_of_rows = CSV.read(ARGV[0])
email_template = ARGV[1]
= arr_of_rows[0]
rows = arr_of_rows[1..]
template_contents = File.read(ARGV[1])
user_email = ARGV[2]
user_password = ARGV[3]
renderer = ERB.new(template_contents)
rows.each do |row|
td = TemplateData.new(, row, template_contents)
rendered_email = td.result
puts rendered_email
smtp.start('gmail.com',
user_email, user_password, :plain) do |smtp|
smtp.send_message rendered_email,
user_email,
td.instance_variable_get("@to_email")
end
puts "-------------------------"
end
end
|