send_gmail 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ca446d249e7b0c0423fd098572531d215b356af7
4
- data.tar.gz: 77966d29e42eb3d69cdac7a162f24ce8919b6588
3
+ metadata.gz: ca24ab038cc7145211ffce266bfaa14b97dc6879
4
+ data.tar.gz: 5beac1e2a7dd2bd04a636329db26217fdb61d737
5
5
  SHA512:
6
- metadata.gz: 1286a65da3eaf19e1e165b67ee8a5ff1ea0fa4153e8a10a5c3543f9225e89792bdd06898e447ff82803d3649caaf13a5de8501135a89ff016453d651d7ec3c68
7
- data.tar.gz: 6012b550893be514fa46fb1b5e061b39d903143e128bdf289928815e2fa7343711fd1852e9fcc1cdae7324963d024c6797b3a7cc2b588e1011da8e32b22e3c7e
6
+ metadata.gz: 0a1b5a54cdde59568a6940a8c56b0bf336addbc848a40dd94aa545eb103a912351e2c2d4f4b3888e830f6fe564e140bd63929987c8a055bd8955f93f901f5909
7
+ data.tar.gz: a93c61945d5ce819f71b79ba6d78c7d83d55df8e7f18760e61fbb210ce29504e1fc34ed1b8e29046a413c76d730644cbe45d6e8fecc54460c8cc50194e23d302
data/README.md CHANGED
@@ -5,7 +5,6 @@ now it features only the acquisition of e-mail. this gem is using gmail api.
5
5
  https://developers.google.com/gmail/api/
6
6
 
7
7
  ## Feature
8
- * mail sending
9
8
  * create draft
10
9
  * on/off label
11
10
  * other...
@@ -36,6 +35,13 @@ $ client.authorize(credentials_path, client_id, client_secret, scope)
36
35
  * client_id, client_sercret is https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
37
36
  * scope is https://developers.google.com/gmail/api/auth/scopes
38
37
 
38
+ ### First Time
39
+ 1. browser auto open and login user
40
+ 2. auto write oauth information to credentials_path
41
+
42
+ ### From second time
43
+ 1. if credentials_path is exist, browser no need to open
44
+
39
45
  ## Incoming mail
40
46
 
41
47
  ```ruby
@@ -57,6 +63,11 @@ $ mail_list = client.mail_list(searching_option)
57
63
  }
58
64
  ```
59
65
 
66
+ ## Outgoing mail
67
+ ```ruby
68
+ $ client.send_mail(to, subject, msg, from = nil, bcc = nil, cc = nil, user_id = 'me')
69
+ => 200
70
+ ```
60
71
 
61
72
  ## Contributing
62
73
 
data/lib/send_gmail.rb CHANGED
@@ -2,12 +2,14 @@ require 'google/api_client'
2
2
  require 'send_gmail/version'
3
3
  require 'send_gmail/auth'
4
4
  require 'send_gmail/mail_list'
5
+ require 'send_gmail/messages'
5
6
  require 'send_gmail/objects/mail'
6
7
 
7
8
  module SendGmail
8
9
  class Client
9
10
  include SendGmail::Auth
10
11
  include SendGmail::MailList
12
+ include SendGmail::Messages
11
13
 
12
14
  attr_accessor :authorization, :client, :gmail_api
13
15
 
@@ -0,0 +1,25 @@
1
+ module SendGmail
2
+ module Messages
3
+ def send_mail(to, subject, msg, from = nil, bcc = nil, cc = nil, user_id = 'me')
4
+ raw_data = SendGmail::Objects::Mail.new(
5
+ to: to,
6
+ subject: subject,
7
+ body: msg,
8
+ from: from,
9
+ bcc: bcc,
10
+ cc: cc
11
+ ).to_raw_data
12
+
13
+ parameters = { userId: user_id }
14
+
15
+ result = @client.execute!(
16
+ api_method: @gmail_api.users.messages.to_h['gmail.users.messages.send'],
17
+ parameters: parameters,
18
+ body_object: {
19
+ raw: Base64.urlsafe_encode64(raw_data)
20
+ }
21
+ )
22
+ result.status
23
+ end
24
+ end
25
+ end
@@ -1,7 +1,32 @@
1
+ require 'mail'
1
2
  module SendGmail
2
3
  module Objects
3
4
  class Mail
4
- attr_accessor :subject, :from, :date, :body
5
+ attr_accessor :subject, :from, :date, :body, :bcc, :to, :cc
6
+
7
+ def initialize(params = {})
8
+ params.each do |key, value|
9
+ instance_variable_set("@#{key}", value)
10
+ end
11
+ end
12
+
13
+ def to_raw_data
14
+ msg = body.to_s
15
+ from_text = from
16
+ to_text = to
17
+ subject_text = subject
18
+
19
+ mail = ::Mail.new do
20
+ from from_text
21
+ to to_text
22
+ subject subject_text
23
+ body msg
24
+ end
25
+ raw = mail.to_s
26
+ raw = "Bcc:#{bcc}\r\n#{raw}" unless bcc.nil?
27
+ raw = "Cc:#{cc}\r\n#{raw}" unless cc.nil?
28
+ raw
29
+ end
5
30
  end
6
31
  end
7
32
  end
@@ -1,3 +1,3 @@
1
1
  module SendGmail
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
data/send_gmail.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ['hatappi']
10
10
  spec.email = ['hata.yusaku.1225@gmail.com']
11
11
 
12
- spec.summary = 'incoming mail'
13
- spec.description = 'incoming mail by google gmail api'
12
+ spec.summary = 'incoming, outgoing mail'
13
+ spec.description = 'incoming, outgoing mail by google gmail api'
14
14
  spec.homepage = 'https://github.com/hatappi/send_gmail'
15
15
  spec.license = 'MIT'
16
16
 
@@ -29,4 +29,5 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency 'rake', '~> 10.0'
30
30
  spec.add_development_dependency 'rspec'
31
31
  spec.add_development_dependency 'google-api-client'
32
+ spec.add_development_dependency 'mail'
32
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: send_gmail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - hatappi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-03-27 00:00:00.000000000 Z
11
+ date: 2016-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,7 +66,21 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- description: incoming mail by google gmail api
69
+ - !ruby/object:Gem::Dependency
70
+ name: mail
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: incoming, outgoing mail by google gmail api
70
84
  email:
71
85
  - hata.yusaku.1225@gmail.com
72
86
  executables:
@@ -88,6 +102,7 @@ files:
88
102
  - lib/send_gmail.rb
89
103
  - lib/send_gmail/auth.rb
90
104
  - lib/send_gmail/mail_list.rb
105
+ - lib/send_gmail/messages.rb
91
106
  - lib/send_gmail/objects/mail.rb
92
107
  - lib/send_gmail/version.rb
93
108
  - send_gmail.gemspec
@@ -115,5 +130,5 @@ rubyforge_project:
115
130
  rubygems_version: 2.4.5.1
116
131
  signing_key:
117
132
  specification_version: 4
118
- summary: incoming mail
133
+ summary: incoming, outgoing mail
119
134
  test_files: []