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 +7 -0
- data/.DS_Store +0 -0
- data/.standard.yml +3 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +0 -0
- data/LICENSE.txt +22 -0
- data/README.md +95 -0
- data/Rakefile +6 -0
- data/fixtures/.DS_Store +0 -0
- data/fixtures/email/sendmail.yml +61 -0
- data/fixtures/email/sendtemplatemail.yml +60 -0
- data/lib/.DS_Store +0 -0
- data/lib/zoho_zeptomail/.DS_Store +0 -0
- data/lib/zoho_zeptomail/client.rb +42 -0
- data/lib/zoho_zeptomail/mail/sendmail.rb +108 -0
- data/lib/zoho_zeptomail/mail/sendtemplatemail.rb +88 -0
- data/lib/zoho_zeptomail/ruby/version.rb +7 -0
- data/lib/zoho_zeptomail/ruby.rb +10 -0
- data/lib/zoho_zeptomail-ruby.rb +3 -0
- data/lib/zoho_zeptomail.rb +3 -0
- data/renovate.json +5 -0
- data/sig/zoho_zeptomail/ruby.rbs +6 -0
- metadata +69 -0
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
data/CHANGELOG.md
ADDED
data/CODE_OF_CONDUCT.md
ADDED
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
data/fixtures/.DS_Store
ADDED
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
|
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: []
|