gmailer

1 view
Skip to first unread message

Shweta Kadam

unread,
Feb 8, 2008, 1:37:31 AM2/8/08
to rubyonra...@googlegroups.com
hi all,
i want to know how to use gmailer in rails
--
Posted via http://www.ruby-forum.com/.

lokhande...@gmail.com

unread,
Feb 8, 2008, 5:26:42 AM2/8/08
to Ruby on Rails: Talk
sudo apt-get install libopenssl-ruby
gem install GMailer

It also req. Python library
You can use as : foo = GMailer.connect("cpjolicoeur", "mypassword")
or
This is procedure :

require 'gmailer'

GMailer.connect(name,pwd) do |g|
#fetch
g.messages(:label=>"my_label") do |ml|
puts "Total # of conversations of my_label = " + ml.total.to_s
end

#get contact
g.fetch(:contact=>"freq").each do |item|
puts "Name: #{item['name']} Email: #{item['email']}"
end

#send message
# 'From' default gmail.com account
g.send(
:to => "w...@what.com, my_friend@his_company.com,
g...@heaven.org",
:cc => "f...@bar.com",
:subject => "Hello There!",
:body => "Hi...\n\nBlah blah blah~~...",
:files => ["./my_pic.jpg", "./my_cv.txt"])

# multiple verified email addresses and choose one 'From:' email
address
g.send(
:from => "verif...@email.com",
:to => "w...@what.com, my_friend@his_company.com,
g...@heaven.org",
:cc => "f...@bar.com",
:subject => "Hello There!",
:body => "Hi...\n\nBlah blah blah~~...",
:files => ["./my_pic.jpg", "./my_cv.txt"])

# update_preference
g.update_preference(:max_page_size=>50,
:keyboard_shortcuts=>true,
:indicators=>true,
:display_language=>'en',
:signature=>'This is a signature',
:reply_to=>'ret...@foo.bar',
:snippets=>true,
:display_name=>'Display Name')

# get preference
pref = g.preference
puts "Language:#{pref['display_language']}, Page
Size:#{pref['max_page_size']}"

#creating new labels
g.create_label('label_name')

#renaming existing labels
g.rename_label('label_name','renamed_label')

#deleting labels
g.delete_label('label_name')

#applying a label to a message
g.apply_label(msgid,'label_name')

#removing a label from a message
g.remove_label(msgid,'label_name')

#apply star to a message
g.apply_star(msgid)

#remove star from a message
g.remove_star(msgid)

#archive a message
g.archive(msgid)

#unarchive a message
g.unarchive(msgid)

#mark a message as read
g.mark_read(msgid)

#mark a message as unread
g.mark_unread(msgid)

#report a message as not spam
g.report_spam(msgid)

#report a message as not spam
g.report_not_spam(msgid)

#move a message to trash
g.trash(msgid)

#move a message from trash to inbox
g.untrash(msgid)

#delete a trash message forever
g.delete_trash(msgid)

#delete a spam message forever
g.delete_spam(msgid)

#delete a message forever
g.delete_message(msgid)

#show original message
g.show original(msgid)

#get labels
labels = g.labels

#get messages
g.messages(:label=>labels[0]).each {|m|
puts "Subject: #{m.subject} / Snippet: #{m.snippet}"
}

#get inbox messages
g.messages(:standard=>'inbox').each {|m|
puts "Subject: #{m.subject} / Snippet: #{m.snippet}"
}

# fetch with filter :read or :star
g.messages(:standard=>'all',:read=>false).each {|msg|
# operations on the message
msg.apply_star
msg.apply_label(label)
msg.trash

puts "subject: " + msg.subject
puts "from: " + msg.sender
puts msg.body
puts msg.original
}

end

On Feb 8, 11:37 am, Shweta Kadam <rails-mailing-l...@andreas-s.net>
wrote:

Poornima Dhanasekar

unread,
Feb 10, 2009, 7:40:46 AM2/10/09
to rubyonra...@googlegroups.com
I have installed gmailer gem.but i got some error when i tried to
connect
my gmail account.i need to get the inbox messages from my gmail
account.but i can't.plzz help me.i got "You have a nil object when you
didn't expect it!
The error occurred while evaluating nil.connection= error".i got tis
eror when i used g.messages line in my code.my code is


require 'rubygems'
require 'gmailer'

class FirstController < ApplicationController


def index
count=0
puts "lllllllllll"
if GMailer.connect('myaccountgmail.com', 'password')
puts "CONNECTED"
begin
GMailer.connect('myac...@gmail.com', 'password') do |g|
puts "GGGGGGGG enter"
puts g.inspect
g.messages(:label => "inbox") do |ml|
ml.each_msg do |conversation|
Email.create!(
:title => conversation.subject,
:text => conversation.body,
:sender => conversation.sender,
:sender_email => conversation.sender_email,
:reply_email => (conversation.reply_email.blank?) ?
conversation.sender_email : conversation.reply_email
)
count += 1
puts conversation.archive
end
end
end #connect
rescue Exception => e
puts e
end
end
count
end

Reply all
Reply to author
Forward
0 new messages