zoho_zeptomail-ruby 0.1.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3497478854b35d3b706071fce54664a5eda2211b5f978eb6cab284f9b0eac8ac
4
+ data.tar.gz: 95d03da2a7e60db983e21edc1fd0d07060407ef88879119c0a5f8df464036fa0
5
+ SHA512:
6
+ metadata.gz: 266b773c75e06ff7bee6189572f14bce264701c42394010c840cc5dd2e976a8fe052ca8cc8b729524e439ecf93738122df63c9b121c707a5bd3e936a883bb3c4
7
+ data.tar.gz: 8986100266b3c6706a55df7961575ad9fe4460eaaddabd07b1a40c416d608cf710352787df4a32ff0ee3c00500eedf67fc5b514bd7b21f39b7e8d8148d07bba6
data/.DS_Store ADDED
Binary file
data/.standard.yml ADDED
@@ -0,0 +1,3 @@
1
+ # For available configuration options, see:
2
+ # https://github.com/standardrb/standard
3
+ ruby_version: 3.1
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.0] - 2025-03-18
4
+
5
+ - Initial release
File without changes
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025, Zoho Corporation Pvt. Ltd.
4
+ All Rights Reserved.
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,95 @@
1
+ <a href="https://www.zoho.com/zeptomail"><img src="https://www.zohowebstatic.com/sites/zweb/images/productlogos/zeptomail.svg
2
+ " width="200px"/></a>
3
+
4
+
5
+ Zoho ZeptoMail Ruby SDK
6
+
7
+ - [Installation](#installation)
8
+ - [Setup](#setup)
9
+ - [Usage](#usage)
10
+ - [Email](#email)
11
+ - [Send an email](#send-an-email)
12
+ - [Add CC, BCC recipients](#add-cc-bcc-recipients)
13
+ - [Send a template-based email](#send-a-template-based-email)
14
+ - [License](#license)
15
+
16
+ # Installation
17
+
18
+ ## Setup
19
+
20
+ ```bash
21
+ gem install zoho_zeptomail-ruby
22
+ ```
23
+
24
+ You will have to initalize it in your Ruby file with `require "zeptomail-ruby"`.
25
+
26
+ ## Email
27
+
28
+ ### Send an email
29
+
30
+ ```ruby
31
+ require "zoho_zeptomail-ruby"
32
+
33
+ ms_client = ZohoZeptoMail::Client.new('your_zoho_zeptomail_token', 'host_region')
34
+
35
+ # Intialize the email class
36
+ ms_email = ZohoZeptoMail::SendMail.new(ms_client) }
37
+
38
+ # Add parameters
39
+ ms_email.add_recipients("email" => "jon@zylker.com", "name" => "Jon")
40
+ ms_email.add_recipients("email" => "leslie@zylker.com", "name" => "Leslie")
41
+ ms_email.add_from("email" => "april@zylker.com", "name" => "April")
42
+ ms_email.add_subject("Time")
43
+ ms_email.add_body("Time is money. Let's go. \n <b>Time is money. Let's go.</b>")
44
+
45
+ # Send the email
46
+ ms_email.send
47
+ ```
48
+
49
+ ### Add CC, BCC recipients
50
+
51
+ ```ruby
52
+ require "zoho_zeptomail-ruby"
53
+
54
+ ms_client = ZohoZeptoMail::Client.new('your_zoho_zeptomail_token', 'host_region')
55
+
56
+ # Intialize the email class
57
+ ms_email = ZohoZeptoMail::SendMail.new(ms_client) }
58
+
59
+ # Add parameters
60
+ ms_email.add_recipients("email" => "ron@zylker.com", "name" => "Ron")
61
+ ms_email.add_recipients("email" => "leslie@zylker.com", "name" => "Leslie")
62
+ ms_email.add_cc("email" => "chris@zylker.com", "name" => "Chris")
63
+ ms_email.add_bcc("email" => "andy@zylker.com", "name" => "Andy")
64
+ ms_email.add_from("email" => "april@zylker.com", "name" => "April")
65
+ ms_email.add_subject("Time")
66
+ ms_email.add_body("Time is money. Let's go. \n <b>Time is money. Let's go.</b>")
67
+
68
+ # Send the email
69
+ ms_email.send
70
+ ```
71
+
72
+ ### Send a template-based email
73
+
74
+ ```ruby
75
+ require "zoho_zeptomail-ruby"
76
+
77
+ ms_client = ZohoZeptoMail::Client.new('your_zoho_zeptomail_token', 'host_region')
78
+
79
+ # Intialize the email class
80
+ ms_email = ZohoZeptoMail::SendTemplateMail.new(ms_client) }
81
+
82
+ # Add parameters
83
+ ms_email.add_recipients("email" => "ron@zylker.com", "name" => "Ron")
84
+ ms_email.add_recipients("email" => "leslie@zylker.com", "name" => "Leslie")
85
+ ms_email.add_from("email" => "april@zylker.com", "name" => "April")
86
+ ms_email.add_subject("Time")
87
+ email.add_template(key: '22d6f.2a5f13c9.k1.274164c0-b792-11ef-88ef-525400e18d05.193b4a2b50c', value: '{"name":"name_value","OTP":"OTP_value","team":"team_value","product_name":"product_name_value"}')
88
+ # Send the email
89
+ ms_email.send
90
+ ```
91
+
92
+ # License
93
+
94
+ [The MIT License (MIT)](LICENSE)
95
+
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "standard/rake"
5
+
6
+ task default: :standard
Binary file
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://zeptomail.zoho.com/v1.1/email
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"from":{"address":"jon@zylker.com","name":"April"},"to":[{"email_address":{"address":"leslie@zylker.com","name":"Ron"}},{"email_address":{"address":"eslie@zylker.com":"Leslie"}}],"subject":"Time
9
+ to Check","htmlbody":"htlllo \n <b>Time</b>","reply_to":[],"cc":[{"email_address":{"address":"eslie@zylker.com","name":"Chris"}}],"bcc":[{"email_address":{"address":"eslie@zylker.com","name":"Andy"}}],"attachments":[{"content":"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","name":"Hello.png","mime_type":"image/png"},{"content":"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ZXNjZW50IC0yMTMgL0ZsYWdzIDk2Ci9Gb250QkJveCBbLTQwOSAtMjE0IDEwOTkgOTUxXSAvRm9udE5hbWUgL1BVQUxYQStIZWx2ZXRpY2FOZXVlLUxpZ2h0SXRhbGljCi9JdGFsaWNBbmdsZSAtMTIgL1N0ZW1WIDY3IC9MZWFkaW5nIDI4IC9NYXhXaWR0aCAxMTIwIC9TdGVtSCA1OCAvWEhlaWdodCA1MjQKL0ZvbnRGaWxlMiAyMiAwIFIgPj4KZW5kb2JqCjI1IDAgb2JqClsgMjc4IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMjc4IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDY4NSAwIDUzNyAwIDAgMCAwIDAgMCAwIDAgMCA2MzAgMCAwIDAgNTU2IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDUxOQowIDAgMCA1MTkgMjU5IDAgNTM3IDE4NSAwIDAgMTg1IDgzMyA1MzcgMCA1NzQgMCAwIDQ4MSAwIDUzNyAwIDAgMCAwIDAgMCAwCjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNDQ0IF0KZW5kb2JqCjkgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9CYXNlRm9udCAvUFVBTFhBK0hlbHZldGljYU5ldWUtTGlnaHRJdGFsaWMKL0ZvbnREZXNjcmlwdG9yIDI0IDAgUiAvV2lkdGhzIDI1IDAgUiAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAyMjIgL0VuY29kaW5nCi9NYWNSb21hbkVuY29kaW5nID4+CmVuZG9iagoxIDAgb2JqCjw8IC9UaXRsZSAoc2FtcGxlKSAvQXV0aG9yIChQaGlsaXAgSHV0Y2hpc29uKSAvQ3JlYXRvciAoUGFnZXMpIC9Qcm9kdWNlciAoTWFjIE9TIFggMTAuNS40IFF1YXJ0eiBQREZDb250ZXh0KQovQ3JlYXRpb25EYXRlIChEOjIwMDgwNzAxMDUyNDQ3WjAwJzAwJykgL01vZERhdGUgKEQ6MjAwODA3MDEwNTI0NDdaMDAnMDAnKQo+PgplbmRvYmoKeHJlZgowIDI2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAxNzkzMCAwMDAwMCBuIAowMDAwMDAzOTgyIDAwMDAwIG4gCjAwMDAwMDUwNzMgMDAwMDAgbiAKMDAwMDAwMDAyMiAwMDAwMCBuIAowMDAwMDAzOTYyIDAwMDAwIG4gCjAwMDAwMDQwODYgMDAwMDAgbiAKMDAwMDAwNTAzNyAwMDAwMCBuIAowMDAwMDA3OTU3IDAwMDAwIG4gCjAwMDAwMTc3NDAgMDAwMDAgbiAKMDAwMDAxMzY5MiAwMDAwMCBuIAowMDAwMDA0MjA5IDAwMDAwIG4gCjAwMDAwMDUwMTcgMDAwMDAgbiAKMDAwMDAwNTE1NiAwMDAwMCBuIAowMDAwMDA1MjA2IDAwMDAwIG4gCjAwMDAwMDc0NzIgMDAwMDAgbiAKMDAwMDAwNzQ5MyAwMDAwMCBuIAowMDAwMDA3NzU1IDAwMDAwIG4gCjAwMDAwMDgxNDYgMDAwMDAgbiAKMDAwMDAxMzE0NiAwMDAwMCBuIAowMDAwMDEzMTY3IDAwMDAwIG4gCjAwMDAwMTM0MjQgMDAwMDAgbiAKMDAwMDAxMzg3NyAwMDAwMCBuIAowMDAwMDE3MDE2IDAwMDAwIG4gCjAwMDAwMTcwMzcgMDAwMDAgbiAKMDAwMDAxNzMwMiAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDI2IC9Sb290IDEzIDAgUiAvSW5mbyAxIDAgUiAvSUQgWyA8NGU5NDk1MTVhYWYxMzI0OThmNjUwZTdiZGU2Y2RjMmY+Cjw0ZTk0OTUxNWFhZjEzMjQ5OGY2NTBlN2JkZTZjZGMyZj4gXSA+PgpzdGFydHhyZWYKMTgxMzIKJSVFT0YK","name":"He.pdf","mime_type":"plain/text"}]}'
10
+ headers:
11
+ User-Agent:
12
+ - Ruby on Rails ZohoZeptoMail
13
+ Accept:
14
+ - application/json
15
+ Authorization:
16
+ - "<AUTH>"
17
+ Connection:
18
+ - close
19
+ Content-Type:
20
+ - application/json; charset=utf-8
21
+ Host:
22
+ - zeptomail.zoho.com
23
+ response:
24
+ status:
25
+ code: 201
26
+ message: Created
27
+ headers:
28
+ Server:
29
+ - ZGS
30
+ Date:
31
+ - Fri, 14 Mar 2025 07:07:08 GMT
32
+ Content-Type:
33
+ - application/json
34
+ Content-Length:
35
+ - '197'
36
+ Connection:
37
+ - close
38
+ Set-Cookie:
39
+ - _zcsr_tmp=e2b5d551-c290-4977-9697-9bb67c164404;path=/;SameSite=Strict;Secure;priority=high
40
+ - tm_csrf_cookie=e2b5d551-c290-4977-9697-9bb67c164404;path=/;SameSite=None;Secure;priority=high
41
+ - zalb_04f0b6dd1f=196521f0100294b5aeefd6d0bb61f836; Path=/; Secure; HttpOnly
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ Cache-Control:
45
+ - private,no-cache,no-store,max-age=0,must-revalidate
46
+ Pragma:
47
+ - no-cache
48
+ Expires:
49
+ - Thu, 01 Jan 1970 00:00:00 GMT
50
+ X-Frame-Options:
51
+ - SAMEORIGIN
52
+ Content-Language:
53
+ - en-US
54
+ Strict-Transport-Security:
55
+ - max-age=63072000
56
+ body:
57
+ encoding: UTF-8
58
+ string: '{"data":[{"code":"EM_104","additional_info":[],"message":"Email request
59
+ received"}],"message":"OK","request_id":"2d6f.2nkjdsfn,43rnjsdnfsdf","object":"email"}'
60
+ recorded_at: Fri, 14 Mar 2025 07:07:08 GMT
61
+ recorded_with: VCR 6.2.0
@@ -0,0 +1,60 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://zeptomail.zoho.com/v1.1/email/template
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"from":{"address":"leslie@zylker.com","name":"April"},"to":[{"email_address":{"address":"jon@zylker.com","name":"Ron"}},{"email_address":{"address":"jon@zylker.com","name":"Leslie"}}],"reply_to":[],"cc":[{"email_address":{"address":"april@zylker.com","name":"Chris"}}],"bcc":[{"email_address":{"address":"april@zylker.com","name":"Andy"}}],"mail_template_key":"2d6f.2a5f13c9.k1.c19333e0-75a8-11ef-b3f6-52540064429e.19204ad361e","merge_info":"{\"name\":\"name_value\",\"OTP\":\"OTP_value\",\"team\":\"team_value\",\"product_name\":\"product_name_value\"}"}'
9
+ headers:
10
+ User-Agent:
11
+ - Ruby on Rails ZohoZeptoMail
12
+ Accept:
13
+ - application/json
14
+ Authorization:
15
+ - "<AUTH>"
16
+ Connection:
17
+ - close
18
+ Content-Type:
19
+ - application/json; charset=utf-8
20
+ Host:
21
+ - zeptomail.zoho.com
22
+ response:
23
+ status:
24
+ code: 422
25
+ message: Unprocessable Entity
26
+ headers:
27
+ Server:
28
+ - ZGS
29
+ Date:
30
+ - Fri, 14 Mar 2025 07:07:09 GMT
31
+ Content-Type:
32
+ - application/json
33
+ Content-Length:
34
+ - '204'
35
+ Connection:
36
+ - close
37
+ Set-Cookie:
38
+ - _zcsr_tmp=44afcc62-1780-4e17-a540-2892fec79414;path=/;SameSite=Strict;Secure;priority=high
39
+ - tm_csrf_cookie=44afcc62-1780-4e17-a540-2892fec79414;path=/;SameSite=None;Secure;priority=high
40
+ - zalb_04f0b6dd1f=09811d5b223b5ffba6ac037b63a4bc2d; Path=/; Secure; HttpOnly
41
+ X-Content-Type-Options:
42
+ - nosniff
43
+ Cache-Control:
44
+ - private,no-cache,no-store,max-age=0,must-revalidate
45
+ Pragma:
46
+ - no-cache
47
+ Expires:
48
+ - Thu, 01 Jan 1970 00:00:00 GMT
49
+ X-Frame-Options:
50
+ - SAMEORIGIN
51
+ Content-Language:
52
+ - en-US
53
+ Strict-Transport-Security:
54
+ - max-age=63072000
55
+ body:
56
+ encoding: UTF-8
57
+ string: '{"error":{"code":"TM_3501","details":[{"code":"MTR_107","message":"Template
58
+ not found"}],"message":"Unprocessable Entity","request_id":"2d6f.2a5f13c9.m4.f25ba680-00a2-11f0-a7fd-525400a229b1.195937a70e8"}}'
59
+ recorded_at: Fri, 14 Mar 2025 07:07:09 GMT
60
+ recorded_with: VCR 6.2.0
data/lib/.DS_Store ADDED
Binary file
Binary file
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'http'
4
+
5
+ ZohoZeptoMail_API_BASE_HOST = 'zeptomail.zoho.com'
6
+
7
+ # ZohoZeptoMail-ruby is a gem that integrates all endpoints from ZohoZeptoMail API
8
+ module ZohoZeptoMail
9
+ class Client
10
+ Domain_list = {
11
+ 'zeptomail.zoho.com' => 'zeptomail.com',
12
+ 'zeptomail.zoho.in' => 'zeptomail.in',
13
+ 'zeptomail.zoho.eu' => 'zeptomail.eu',
14
+ 'zeptomail.zoho.jp' => 'zeptomail.jp',
15
+ 'zeptomail.zohocloud.ca' => 'zeptomail.ca',
16
+ 'zeptomail.zoho.sa' => 'zeptomail.sa',
17
+ 'zeptomail.zoho.com.au' => 'zeptomail.com.au',
18
+ 'zeptomail.zoho.com.cn' => 'zeptomail.com.cn'
19
+ }
20
+
21
+ attr_reader :api_token
22
+ attr_reader :host_region
23
+
24
+ # Inits the client.
25
+ def initialize(api_token = ENV.fetch('ZOHO_ZEPTOMAIL_API_KEY_TOKEN', nil), api_host = ENV.fetch('ZOHO_ZEPTOMAIL_HOSTED_REGION', ZohoZeptoMail_API_BASE_HOST))
26
+ raise ArgumentError 'API key token is not provided' if api_token.nil?
27
+ raise ArgumentError 'Host region is not provided' if api_host.nil?
28
+ unless Domain_list.key?(api_host)
29
+ raise ArgumentError 'Invalid domain. Please verify it.'
30
+ end
31
+ @api_token = api_token
32
+ @host_region = api_host
33
+ end
34
+
35
+ def http
36
+ HTTP
37
+ .headers('User-Agent' => "Ruby on Rails ZohoZeptoMail",
38
+ 'Accept' => 'application/json',
39
+ 'Authorization' => @api_token)
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,108 @@
1
+
2
+ # frozen_string_literal: true
3
+
4
+ require 'base64'
5
+
6
+ module ZohoZeptoMail
7
+ # Send an mail through ZohoZeptoMail API
8
+ class SendMail
9
+ attr_accessor :client,
10
+ :from,
11
+ :recipients,
12
+ :subject,
13
+ :body,
14
+ :cc,
15
+ :bcc,
16
+ :reply_to,
17
+ :attachments
18
+
19
+ def initialize(client = ZohoZeptoMail::Client.new)
20
+ @client = client
21
+ @from = {}
22
+ @recipients = []
23
+ @body = nil
24
+ @bcc = []
25
+ @cc = []
26
+ @reply_to = []
27
+ @subject = nil
28
+ @attachments = []
29
+ end
30
+
31
+ def add_recipients(recipients)
32
+ @recipients << {'email_address' => recipients}
33
+ end
34
+
35
+ def add_from(from)
36
+ @from = from
37
+ end
38
+
39
+ def add_cc(cc)
40
+ @cc << {'email_address' => cc}
41
+ end
42
+
43
+ def add_bcc(bcc)
44
+ @bcc << {'email_address' => bcc}
45
+ end
46
+
47
+ def add_reply_to(reply_to)
48
+ @reply_to << reply_to
49
+ end
50
+
51
+ def add_subject(subject)
52
+ @subject = subject
53
+ end
54
+
55
+ def add_body(body)
56
+ @body = body
57
+ end
58
+
59
+ def add_attachment(content:, filename:, mime_type:)
60
+ content_string = content.to_s
61
+ if File.readable?(content_string)
62
+ data = File.read(content_string)
63
+ content_string = data
64
+ end
65
+ add_attachments(content: content_string, filename: filename, mime_type: mime_type)
66
+ end
67
+
68
+ def add_attachments(content:, filename:, mime_type:)
69
+ data_content = Base64.strict_encode64(content.to_s)
70
+ @attachments << { 'content' => data_content, 'name' => filename, 'mime_type' => mime_type }
71
+ end
72
+
73
+ def handle_to_response(response)
74
+ response_data = {}
75
+ data = JSON.parse(response.body)
76
+
77
+ if response.code.to_i / 100 == 2
78
+ response_data['status'] = 'success'
79
+ response_data['message'] = data['data'][0]['message'] || 'successfully sent the email'
80
+ else
81
+ response_data['status'] = 'failure'
82
+ response_data['message'] = data['error']['details'][0]['message']
83
+
84
+ begin
85
+ response_data['target'] = data['error']['details'][0]['target']
86
+ rescue
87
+ end
88
+ end
89
+
90
+ response_data
91
+ end
92
+
93
+ def send
94
+ message = {
95
+ 'from' => @from,
96
+ 'to' => @recipients,
97
+ 'subject' => @subject,
98
+ 'htmlbody' => @body,
99
+ 'reply_to' => @reply_to,
100
+ 'cc' => @cc,
101
+ 'bcc' => @bcc,
102
+ 'attachments' => @attachments,
103
+ }
104
+ response = client.http.post("https://#{client.host_region}/v1.1/email", json: message)
105
+ puts "Response: #{handle_to_response(response)}"
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,88 @@
1
+
2
+ # frozen_string_literal: true
3
+
4
+ require 'base64'
5
+
6
+ module ZohoZeptoMail
7
+ # Send an Template Mail through ZohoZeptoMail API
8
+ class SendTemplateMail
9
+ attr_accessor :client,
10
+ :from,
11
+ :recipients,
12
+ :cc,
13
+ :bcc,
14
+ :reply_to,
15
+ :template_key,
16
+ :template_value
17
+
18
+ def initialize(client = ZohoZeptoMail::Client.new)
19
+ @client = client
20
+ @from = {}
21
+ @recipients = []
22
+ @bcc = []
23
+ @cc = []
24
+ @reply_to = []
25
+ @template_key = nil
26
+ @template_value = nil
27
+ end
28
+
29
+ def add_recipients(recipients)
30
+ @recipients << {'email_address' => recipients}
31
+ end
32
+
33
+ def add_from(from)
34
+ @from = from
35
+ end
36
+
37
+ def add_cc(cc)
38
+ @cc << {'email_address' => cc}
39
+ end
40
+
41
+ def add_bcc(bcc)
42
+ @bcc << {'email_address' => bcc}
43
+ end
44
+
45
+ def add_reply_to(reply_to)
46
+ @reply_to << reply_to
47
+ end
48
+
49
+ def add_template(key:, value:)
50
+ @template_key = key.to_s
51
+ @template_value = value.to_s
52
+ end
53
+
54
+ def handle_to_response(response)
55
+ response_data = {}
56
+ data = JSON.parse(response.body)
57
+
58
+ if response.code.to_i / 100 == 2
59
+ response_data['status'] = 'success'
60
+ response_data['message'] = data['data'][0]['message'] || 'successfully sent the email'
61
+ else
62
+ response_data['status'] = 'failure'
63
+ response_data['message'] = data['error']['details'][0]['message']
64
+
65
+ begin
66
+ response_data['target'] = data['error']['details'][0]['target']
67
+ rescue
68
+ end
69
+ end
70
+
71
+ response_data
72
+ end
73
+
74
+ def send
75
+ message = {
76
+ 'from' => @from,
77
+ 'to' => @recipients,
78
+ 'reply_to' => @reply_to,
79
+ 'cc' => @cc,
80
+ 'bcc' => @bcc,
81
+ 'mail_template_key' => @template_key,
82
+ 'merge_info' => @template_value
83
+ }
84
+ response = client.http.post("https://#{client.host_region}/v1.1/email/template", json: message)
85
+ puts "Response: #{handle_to_response(response)}"
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ZohoZeptomail
4
+ module Ruby
5
+ VERSION = "0.1.0"
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "ruby/version"
4
+
5
+ module ZohoZeptomail
6
+ module Ruby
7
+ class Error < StandardError; end
8
+ # Your code goes here...
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'zoho_zeptomail'
@@ -0,0 +1,3 @@
1
+ require_relative 'zoho_zeptomail/mail/sendmail'
2
+ require_relative 'zoho_zeptomail/mail/sendtemplatemail'
3
+ require_relative 'zoho_zeptomail/client'
data/renovate.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": [
3
+ "config:base"
4
+ ]
5
+ }
@@ -0,0 +1,6 @@
1
+ module ZohoZeptomail
2
+ module Ruby
3
+ VERSION: String
4
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
5
+ end
6
+ end
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zoho_zeptomail-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - ZohoMail
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2025-03-18 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Zoho ZeptoMail official Ruby SDK. Interacts with all endpoints at Zoho
14
+ ZeptoMail API.
15
+ email:
16
+ - zmintegration@zohomail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - ".DS_Store"
22
+ - ".standard.yml"
23
+ - CHANGELOG.md
24
+ - CODE_OF_CONDUCT.md
25
+ - LICENSE.txt
26
+ - README.md
27
+ - Rakefile
28
+ - fixtures/.DS_Store
29
+ - fixtures/email/sendmail.yml
30
+ - fixtures/email/sendtemplatemail.yml
31
+ - lib/.DS_Store
32
+ - lib/zoho_zeptomail-ruby.rb
33
+ - lib/zoho_zeptomail.rb
34
+ - lib/zoho_zeptomail/.DS_Store
35
+ - lib/zoho_zeptomail/client.rb
36
+ - lib/zoho_zeptomail/mail/sendmail.rb
37
+ - lib/zoho_zeptomail/mail/sendtemplatemail.rb
38
+ - lib/zoho_zeptomail/ruby.rb
39
+ - lib/zoho_zeptomail/ruby/version.rb
40
+ - renovate.json
41
+ - sig/zoho_zeptomail/ruby.rbs
42
+ homepage: https://www.zoho.com/zeptomail/
43
+ licenses:
44
+ - MIT
45
+ metadata:
46
+ allowed_push_host: https://rubygems.org
47
+ homepage_uri: https://www.zoho.com/zeptomail/
48
+ source_code_uri: https://github.com/zohomail/zoho_zeptomail-ruby/tree/main/zoho_zeptomail-ruby-main
49
+ changelog_uri: https://github.com/zohomail/zoho_zeptomail-ruby/blob/main/zoho_zeptomail-ruby-main/CHANGELOG.md
50
+ post_install_message:
51
+ rdoc_options: []
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: 3.1.0
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ requirements: []
65
+ rubygems_version: 3.3.3
66
+ signing_key:
67
+ specification_version: 4
68
+ summary: Zoho ZeptoMail official Ruby SDK
69
+ test_files: []