alphamail 1.0.0.pre
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/CHANGELOG +0 -0
- data/LICENSE +0 -0
- data/README +0 -0
- data/Rakefile +17 -0
- data/lib/alphamail.rb +77 -0
- data/spec/alphamail_test.rb +32 -0
- metadata +93 -0
data/CHANGELOG
ADDED
File without changes
|
data/LICENSE
ADDED
File without changes
|
data/README
ADDED
File without changes
|
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
desc "Validate the gemspec"
|
2
|
+
task :gemspec do
|
3
|
+
gemspec.validate
|
4
|
+
end
|
5
|
+
|
6
|
+
desc "Build gem locally"
|
7
|
+
task :build => :gemspec do
|
8
|
+
system "gem build #{gemspec.name}.gemspec"
|
9
|
+
FileUtils.mkdir_p "pkg"
|
10
|
+
FileUtils.mv "#{gemspec.name}-#{gemspec.version}.gem", "pkg"
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Install gem locally"
|
14
|
+
task :install => :build do
|
15
|
+
system "gem install pkg/#{gemspec.name}-#{gemspec.version}"
|
16
|
+
end
|
17
|
+
|
data/lib/alphamail.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require 'uri'
|
4
|
+
require 'net/http'
|
5
|
+
require 'json'
|
6
|
+
|
7
|
+
# Email contact class
|
8
|
+
class EmailContact
|
9
|
+
attr_accessor :name
|
10
|
+
attr_accessor :email
|
11
|
+
|
12
|
+
def initialize(name = "Undefined", email = "")
|
13
|
+
@name = name
|
14
|
+
@email = email
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# Message payload class
|
19
|
+
class EmailMessagePayload
|
20
|
+
attr_accessor :project_id
|
21
|
+
attr_accessor :receiver_id
|
22
|
+
attr_accessor :sender_name
|
23
|
+
attr_accessor :sender_email
|
24
|
+
attr_accessor :receiver_name
|
25
|
+
attr_accessor :receiver_email
|
26
|
+
attr_accessor :body
|
27
|
+
|
28
|
+
def initialize(project_id = 0, receiver_id = 0, sender_name = '', sender_email = '', receiver_name = '', receiver_email = '', body = '')
|
29
|
+
@project_id = project_id
|
30
|
+
@receiver_id = receiver_id
|
31
|
+
@sender_name = sender_name
|
32
|
+
@sender_email = sender_email
|
33
|
+
@receiver_name = receiver_name
|
34
|
+
@receiver_email = receiver_email
|
35
|
+
@body = body
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_json(*a)
|
39
|
+
{
|
40
|
+
'project_id' => project_id,
|
41
|
+
'receiver_id' => receiver_id,
|
42
|
+
'sender_name' => sender_name,
|
43
|
+
'sender_email' => sender_email,
|
44
|
+
'receiver_name' => receiver_name,
|
45
|
+
'receiver_email' => receiver_email,
|
46
|
+
'body' => body
|
47
|
+
|
48
|
+
}.to_json(*a)
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
# Alpha-mail email service
|
54
|
+
class AlphaMailEmailService
|
55
|
+
def initialize(service_url, api_token)
|
56
|
+
@service_url = service_url + '/email/queue'
|
57
|
+
@api_token = api_token
|
58
|
+
end
|
59
|
+
|
60
|
+
def queue(payload = '')
|
61
|
+
# Queue the message
|
62
|
+
uri = URI.parse(@service_url)
|
63
|
+
req = Net::HTTP::Post.new(uri.path)
|
64
|
+
req.basic_auth '', @api_token
|
65
|
+
req.body = payload.to_json
|
66
|
+
req.content_type = 'application/json'
|
67
|
+
res = Net::HTTP.start('api.am1.comfirm.se', uri.port) {|http|
|
68
|
+
http.request(req)
|
69
|
+
}
|
70
|
+
puts res.body
|
71
|
+
|
72
|
+
puts 'Message was successfully queued!'
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'alphamail'
|
2
|
+
|
3
|
+
class Member
|
4
|
+
attr_accessor :name
|
5
|
+
attr_accessor :password
|
6
|
+
|
7
|
+
def initialize(name = 'Unknown', password = '')
|
8
|
+
@name = name
|
9
|
+
@password = password
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_json(*a)
|
13
|
+
{
|
14
|
+
'name' => name,
|
15
|
+
'password' => password
|
16
|
+
|
17
|
+
}.to_json(*a)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
m = Member.new 'Jack', 'my3Pass0rd89'
|
22
|
+
|
23
|
+
a = AlphaMail.EmailMessagePayload.new
|
24
|
+
a.project_id = 139
|
25
|
+
a.sender_name = 'Jack'
|
26
|
+
a.sender_email = 'jack@skysel.com'
|
27
|
+
a.receiver_name = 'Timothy'
|
28
|
+
a.receiver_email = 'jack.johansson@comfirm.se'
|
29
|
+
a.body = m.to_json
|
30
|
+
|
31
|
+
service = AlphaMail.AlphaMailEmailService.new 'http://api.am1.comfirm.se/v1', '4e8c684c47a2f0-50424246'
|
32
|
+
service.queue(a)
|
metadata
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: alphamail
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 961915988
|
5
|
+
prerelease: true
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
- pre
|
11
|
+
version: 1.0.0.pre
|
12
|
+
platform: ruby
|
13
|
+
authors:
|
14
|
+
- Jack Engqvist Johansson
|
15
|
+
- Comfirm AB
|
16
|
+
autorequire:
|
17
|
+
bindir: bin
|
18
|
+
cert_chain: []
|
19
|
+
|
20
|
+
date: 2012-02-03 00:00:00 +00:00
|
21
|
+
default_executable:
|
22
|
+
dependencies:
|
23
|
+
- !ruby/object:Gem::Dependency
|
24
|
+
name: json
|
25
|
+
prerelease: false
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
hash: 5
|
32
|
+
segments:
|
33
|
+
- 1
|
34
|
+
- 6
|
35
|
+
- 5
|
36
|
+
version: 1.6.5
|
37
|
+
type: :runtime
|
38
|
+
version_requirements: *id001
|
39
|
+
description: The official gem for sending transactional emails via Comfirm's AlphaMail service
|
40
|
+
email:
|
41
|
+
- jack.johansson@comfirm.se
|
42
|
+
executables: []
|
43
|
+
|
44
|
+
extensions: []
|
45
|
+
|
46
|
+
extra_rdoc_files: []
|
47
|
+
|
48
|
+
files:
|
49
|
+
- lib/alphamail.rb
|
50
|
+
- README
|
51
|
+
- Rakefile
|
52
|
+
- LICENSE
|
53
|
+
- CHANGELOG
|
54
|
+
- spec/alphamail_test.rb
|
55
|
+
has_rdoc: true
|
56
|
+
homepage: http://www.comfirm.se
|
57
|
+
licenses:
|
58
|
+
- MIT
|
59
|
+
post_install_message: Thanks for using AlphaMail. Visit http://www.comfirm.se for help, articles and news about transactional emails.
|
60
|
+
rdoc_options: []
|
61
|
+
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
hash: 3
|
70
|
+
segments:
|
71
|
+
- 0
|
72
|
+
version: "0"
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 23
|
79
|
+
segments:
|
80
|
+
- 1
|
81
|
+
- 3
|
82
|
+
- 6
|
83
|
+
version: 1.3.6
|
84
|
+
requirements:
|
85
|
+
- AlphaMail account (free)
|
86
|
+
- Internet connection
|
87
|
+
rubyforge_project:
|
88
|
+
rubygems_version: 1.3.7
|
89
|
+
signing_key:
|
90
|
+
specification_version: 3
|
91
|
+
summary: Send transactional emails via AlphaMail
|
92
|
+
test_files: []
|
93
|
+
|