gmail_sender 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +23 -2
- data/VERSION +1 -1
- data/bin/gmail +51 -0
- data/gmail_sender.gemspec +9 -5
- data/lib/gmail_sender.rb +7 -7
- data/lib/tls_smtp_patch.rb +1 -1
- data/test/test_helper.rb +0 -4
- metadata +7 -6
data/README.rdoc
CHANGED
@@ -8,10 +8,31 @@ A simple gem to send email through gmail
|
|
8
8
|
g = GmailSender.new("gmail_account_user_name", "gmail_account_password")
|
9
9
|
g.send("someone@domain.com", "The subject", "The mail body")
|
10
10
|
|
11
|
+
== Command line usage
|
12
|
+
|
13
|
+
You can also use gmail_sender from the command line. First you need to create ~/.gmail with this content (YAML):
|
14
|
+
|
15
|
+
receiver_email: default_receiver@gmail.com
|
16
|
+
sender_user: gmail_account_user_name
|
17
|
+
sender_password: gmail_account_password
|
18
|
+
|
19
|
+
Is advisable to use a different sender account than your main email address so that it's not so bad if someone reads your configuration file and gets your password.
|
20
|
+
|
21
|
+
=== Examples
|
22
|
+
|
23
|
+
To send your directory list to the default receiver:
|
24
|
+
|
25
|
+
ls | gmail
|
26
|
+
|
27
|
+
You can specify some parameters like in this example which doesn't use pipes:
|
28
|
+
|
29
|
+
gmail -t somebody@gmail.com -s "This is the subject" -c "This is the email content"
|
30
|
+
|
11
31
|
== Requirements
|
12
32
|
|
13
33
|
tlsmail if running Ruby 1.8.6
|
14
34
|
|
15
|
-
==
|
35
|
+
== Major contributors
|
16
36
|
|
17
|
-
|
37
|
+
* Daniel Cadenas - Maintainer
|
38
|
+
* Felipe Coury
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/bin/gmail
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'gmail_sender'
|
5
|
+
require 'choice'
|
6
|
+
|
7
|
+
Choice.options do
|
8
|
+
header ''
|
9
|
+
header 'options:'
|
10
|
+
|
11
|
+
option :receiver_email do
|
12
|
+
short '-t'
|
13
|
+
long '--to=RECEIVER'
|
14
|
+
desc 'Receiver of the email'
|
15
|
+
end
|
16
|
+
|
17
|
+
option :subject do
|
18
|
+
short '-s'
|
19
|
+
long '--subject=SUBJECT'
|
20
|
+
desc 'Subject of the email'
|
21
|
+
end
|
22
|
+
|
23
|
+
option :content do
|
24
|
+
short '-c'
|
25
|
+
long '--content=MAIL_CONTENTS'
|
26
|
+
desc 'Body of the email, uses STDIN if omitted'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def params
|
31
|
+
return @params if @params
|
32
|
+
|
33
|
+
config_file_path = File.join(ENV['HOME'],'.gmail')
|
34
|
+
if !File.exists?(config_file_path)
|
35
|
+
STDERR.puts "Please first create a ~/.gmail file with some defaults. Example:
|
36
|
+
receiver_email: default_receiver@gmail.com
|
37
|
+
sender_user: gmail_account_user_name
|
38
|
+
sender_password: gmail_account_user_password
|
39
|
+
"
|
40
|
+
exit 1
|
41
|
+
end
|
42
|
+
|
43
|
+
defaults = {'subject' => 'Sent from command line',
|
44
|
+
'sender_domain' => 'gmail.com'}
|
45
|
+
|
46
|
+
@params = defaults.merge(YAML.load_file(config_file_path)).merge(Choice.choices)
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
mailer = GmailSender.new(params['sender_user'], params['sender_password'], params['sender_domain'])
|
51
|
+
mailer.send(params['receiver_email'], params['subject'], params['content'] || STDIN.read)
|
data/gmail_sender.gemspec
CHANGED
@@ -2,15 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{gmail_sender}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Daniel Cadenas"]
|
8
|
+
s.authors = ["Daniel Cadenas", "Felipe Coury"]
|
9
9
|
s.date = %q{2009-05-25}
|
10
|
-
s.email = %q{dcadenas@gmail.com}
|
10
|
+
s.email = %q{dcadenas@gmail.com felipe.coury@gmail.com}
|
11
|
+
s.bindir = "bin"
|
12
|
+
s.executables = ["gmail"]
|
11
13
|
s.extra_rdoc_files = [
|
12
14
|
"LICENSE",
|
13
|
-
|
15
|
+
"README.rdoc"
|
14
16
|
]
|
15
17
|
s.files = [
|
16
18
|
".document",
|
@@ -20,6 +22,7 @@ Gem::Specification.new do |s|
|
|
20
22
|
"Rakefile",
|
21
23
|
"VERSION",
|
22
24
|
"gmail_sender.gemspec",
|
25
|
+
"bin/gmail",
|
23
26
|
"lib/gmail_sender.rb",
|
24
27
|
"lib/tls_smtp_patch.rb",
|
25
28
|
"test/gmail_sender_test.rb",
|
@@ -29,7 +32,7 @@ Gem::Specification.new do |s|
|
|
29
32
|
s.rdoc_options = ["--charset=UTF-8"]
|
30
33
|
s.require_paths = ["lib"]
|
31
34
|
s.rubygems_version = %q{1.3.3}
|
32
|
-
s.summary = %q{A simple gem to send email through gmail}
|
35
|
+
s.summary = s.description = %q{A simple gem to send email through gmail}
|
33
36
|
s.test_files = [
|
34
37
|
"test/gmail_sender_test.rb",
|
35
38
|
"test/test_helper.rb"
|
@@ -40,6 +43,7 @@ Gem::Specification.new do |s|
|
|
40
43
|
s.specification_version = 3
|
41
44
|
|
42
45
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
46
|
+
s.add_runtime_dependency(%q<choice>, [">= 0"])
|
43
47
|
else
|
44
48
|
end
|
45
49
|
else
|
data/lib/gmail_sender.rb
CHANGED
@@ -1,23 +1,24 @@
|
|
1
1
|
require "tls_smtp_patch"
|
2
2
|
|
3
3
|
class GmailSender
|
4
|
-
def initialize(
|
5
|
-
@
|
6
|
-
@
|
4
|
+
def initialize(user, password, domain="gmail.com")
|
5
|
+
@sender_domain = domain
|
6
|
+
@sender_password = password
|
7
|
+
@sender_email = "#{user}@#{domain}"
|
7
8
|
@net_smtp = Net::SMTP.new("smtp.gmail.com", 587)
|
8
9
|
@net_smtp.enable_starttls
|
9
10
|
end
|
10
11
|
|
11
12
|
def send(to, subject, content)
|
12
|
-
@net_smtp.start(
|
13
|
+
@net_smtp.start(@sender_domain, @sender_email, @sender_password, :plain) do |smtp|
|
13
14
|
msg = create_message(to, subject, content)
|
14
|
-
smtp.send_message(msg, @
|
15
|
+
smtp.send_message(msg, @sender_email, to)
|
15
16
|
end
|
16
17
|
end
|
17
18
|
|
18
19
|
def create_message(to, subject, content)
|
19
20
|
<<MSG
|
20
|
-
From: #@
|
21
|
+
From: #@sender_email
|
21
22
|
To: #{to}
|
22
23
|
Subject: #{subject}
|
23
24
|
|
@@ -25,4 +26,3 @@ Subject: #{subject}
|
|
25
26
|
MSG
|
26
27
|
end
|
27
28
|
end
|
28
|
-
|
data/lib/tls_smtp_patch.rb
CHANGED
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gmail_sender
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Cadenas
|
@@ -9,14 +9,14 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
13
|
-
default_executable:
|
12
|
+
date: 2009-11-02 00:00:00 -02:00
|
13
|
+
default_executable: gmail
|
14
14
|
dependencies: []
|
15
15
|
|
16
16
|
description:
|
17
17
|
email: dcadenas@gmail.com
|
18
|
-
executables:
|
19
|
-
|
18
|
+
executables:
|
19
|
+
- gmail
|
20
20
|
extensions: []
|
21
21
|
|
22
22
|
extra_rdoc_files:
|
@@ -29,6 +29,7 @@ files:
|
|
29
29
|
- README.rdoc
|
30
30
|
- Rakefile
|
31
31
|
- VERSION
|
32
|
+
- bin/gmail
|
32
33
|
- gmail_sender.gemspec
|
33
34
|
- lib/gmail_sender.rb
|
34
35
|
- lib/tls_smtp_patch.rb
|
@@ -58,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
58
59
|
requirements: []
|
59
60
|
|
60
61
|
rubyforge_project:
|
61
|
-
rubygems_version: 1.3.
|
62
|
+
rubygems_version: 1.3.5
|
62
63
|
signing_key:
|
63
64
|
specification_version: 3
|
64
65
|
summary: A simple gem to send email through gmail
|