Created
July 19, 2016 05:51
-
-
Save lkuper/73275753b3ff04ff0b68287de7da02e7 to your computer and use it in GitHub Desktop.
Tiny script for sending bulk emails via Gmail.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Dependencies: `gem install ruby-gmail` | |
require 'gmail' | |
require 'csv' | |
email_subject = "subject line" | |
email_body = File.open("email.txt", "rb").read | |
username = "username" | |
password = "password" | |
gmail = Gmail.new(username, password) | |
addresses = [] | |
# contacts.csv exported from Gmail contacts | |
CSV.foreach('contacts.csv') do |row| | |
addresses.push(row[14]) | |
end | |
# Remove header | |
addresses.shift | |
addresses.each() { |address| | |
email = gmail.generate_message do | |
to address | |
from "Your Name <[email protected]>" | |
subject email_subject | |
body email_body | |
end | |
gmail.deliver(email) | |
} | |
gmail.logout |
Oh, and I never close the open file handle. YOLO.
I'm getting this error: -> "534 5.7.14 https://support.google.com/mail/answer/78754 x68sm2113801ede.25 - gsmtp\r\n"
/home/****/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/net/smtp.rb:976:in `check_auth_response': 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbto (Net::SMTPAuthenticationError)
I actually configured Gmail to allow less secure apps, but still having the same issue.
@luilver I've never seen this error, but does the account have 2-step verification turned on? If so, you might have to set up an App Password. If that's not the issue, then I'm not sure what it might be.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The
"Your Name <[email protected]>"
part isn't actually necessary, because ruby-gmail pulls the[email protected]
from your account. If you want theYour Name
to show up, though, you have to put it in manually like I did here (or, at least, I couldn't find an easy way to make ruby-gmail do it in a few minutes of looking).