leonteale

sendmail.rb

Nov 12th, 2015
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.97 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. require 'net/smtp'
  4. require 'base64'
  5.  
  6. ###change the below:
  7. username =      '[email protected]'
  8. password =      'Password1'      
  9. from =          '[email protected]'
  10. display_from =  'User full name'           
  11. subject =       'Schedule Changes'
  12. date =          'Thursday, November 12, 2015'
  13. url =           'http://evildomain.com/index.php?'
  14. smtp =          'evilmailserver.com'
  15. smtpout =       'evilmailserver.com'
  16. port =          '25'
  17. message = []   
  18.  
  19. def sendemail(username, password, from, message, email, port, smtpout, smtp)
  20.     # code to send email
  21.     begin
  22.         Net::SMTP.start("#{smtpout}", "#{port}", "#{smtp}","#{username}", "#{password}", :plain) do |smtp|
  23.             smtp.send_message message, "#{from}", email.chomp
  24.         end
  25.         puts "\tSent to: #{email}"
  26.     rescue => e
  27.         puts "\tIssues Sending to: #{email}\r\n#{e.class}\r\n#{e}"
  28.     end
  29. end
  30.  
  31. unless ARGV.length == 2
  32.     puts "./sendmail.rb <email-addys.txt> <email_message.txt>\n"
  33.     exit!
  34. else
  35.     emails = File.open(ARGV[0], 'r')
  36. end
  37.  
  38. count = 1
  39. puts "Sending Emails:"
  40. emails.each_line do |email|
  41.     message = []
  42.     # base64 encode email address
  43.     encode = "#{Base64.encode64("#{email}")}"
  44.  
  45.     email_message = File.open(ARGV[1], 'r')
  46.     email_message.each_line do |line|
  47.         if line =~ /\#{url}/
  48.             message << line.gsub(/\#{url}/, "#{url}#{encode.chomp}")
  49.         elsif line =~ /\#{to}/
  50.             message << line.gsub(/\#{to}/, "#{email.chomp}")
  51.         elsif line =~ /\#{from}/ and line =~ /\#{display_from}/
  52.             message << line.gsub(/\#{display_from} <\#{from}>/, "#{display_from} <#{from}>")
  53.         elsif line =~ /\#{display_from}/ and not line =~ /\#{from}/
  54.             message << line.gsub(/\#{display_from}/, "#{display_from}")
  55.         elsif line =~ /\#{subject}/
  56.             message << line.gsub(/\#{subject}/, "#{subject}")
  57.         elsif line =~ /\#{date}/
  58.             message << line.gsub(/\#{date}/, "#{date}")
  59.         else
  60.             message << line
  61.         end
  62.     end
  63.     email_message.close
  64.  
  65.     text = message.join
  66.  
  67.     # send emails
  68.     sendemail(username, password, from, text, email, port, smtpout, smtp)
  69. end
  70.  
  71. # close files
  72. emails.close
Add Comment
Please, Sign In to add comment