Skip to content

Instantly share code, notes, and snippets.

Created Jul 19, 2016
What would you like to do?
Tiny script for sending bulk emails via Gmail.
# Dependencies: `gem install ruby-gmail`
require 'gmail'
require 'csv'
email_subject = "subject line"
email_body ="email.txt", "rb").read
username = "username"
password = "password"
gmail =, password)
addresses = []
# contacts.csv exported from Gmail contacts
CSV.foreach('contacts.csv') do |row|
# Remove header
addresses.each() { |address|
email = gmail.generate_message do
to address
from "Your Name <>"
subject email_subject
body email_body
Copy link

lkuper commented Aug 8, 2016

The "Your Name <>" part isn't actually necessary, because ruby-gmail pulls the from your account. If you want the Your 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).

Copy link

lkuper commented Aug 8, 2016

Oh, and I never close the open file handle. YOLO.

Copy link

luilver commented Apr 12, 2018

I'm getting this error: -> "534 5.7.14 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 < (Net::SMTPAuthenticationError)

I actually configured Gmail to allow less secure apps, but still having the same issue.

Copy link

lkuper commented Sep 11, 2018

@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