mailflow-rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 8116f653c058e31632f7705e9813946a309ec8c5f67fd605e311a46ee88acec1
4
+ data.tar.gz: ed795f6ffb9ea01cad06fc5f587f9eebca9dc3f6c553b8c955b2504f51ccd7ae
5
+ SHA512:
6
+ metadata.gz: b6fa57f650a56f91b86ee03e83962ebd7ef2fc8214188249e2bb10cb1c3ca6bd472d90a24499fd7a2ff9c417ee595002f1bff9aa3d99441117d6afd1fc9fcc67
7
+ data.tar.gz: 4f37432721fa82fe628eecf86bce8713a378c3118cf9d84a29a20d292f6dd0c67abc211175012d92fe913bda1cedc051ecc2c72052a31d795303afc99b45dc4a
@@ -0,0 +1,41 @@
1
+ module Mailflow
2
+ module Rails
3
+ class ActionMailerDeliveryMethod
4
+ attr_reader :settings
5
+
6
+ def initialize(settings)
7
+ @settings = settings
8
+ end
9
+
10
+ def deliver!(message)
11
+ client.send_raw_message do |m|
12
+ m.mail_from(message.from.first)
13
+ add_recipients(m, message)
14
+ m.data(message.to_s)
15
+ end
16
+ rescue StandardError => e
17
+ # Consider logging the error or re-raising a custom error with a clearer message.
18
+ raise "Failed to deliver message: #{e.message}"
19
+ end
20
+
21
+ private
22
+
23
+ def client
24
+ @client ||= Mailflow::Client.new(
25
+ settings.fetch(:host, ENV['MAILFLOW_HOST']),
26
+ settings.fetch(:server_key, ENV['MAILFLOW_KEY'])
27
+ )
28
+ end
29
+
30
+ def add_recipients(m, message)
31
+ [:to, :cc, :bcc].each do |type|
32
+ next unless message.send(type)
33
+
34
+ message.send(type).each do |address|
35
+ m.rcpt_to(address)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,5 @@
1
+ module Mailflow
2
+ module Rails
3
+ VERSION = '0.0.1'.freeze
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ require 'mailflow'
2
+ require 'mailflow/rails/action_mailer_delivery_method'
3
+
4
+ if defined?(ActionMailer)
5
+ ActionMailer::Base.add_delivery_method :mailflow, Mailflow::Rails::ActionMailerDeliveryMethod
6
+ end
metadata ADDED
@@ -0,0 +1,60 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mailflow-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Mailflow
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-09-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mailflow
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Mailflow library for Rails/ActionMailer library
28
+ email:
29
+ - support@mailflow.cloud
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/mailflow-rails.rb
35
+ - lib/mailflow/rails/action_mailer_delivery_method.rb
36
+ - lib/mailflow/rails/version.rb
37
+ homepage: https://mailflow.cloud
38
+ licenses:
39
+ - MIT
40
+ metadata: {}
41
+ post_install_message:
42
+ rdoc_options: []
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ requirements: []
56
+ rubygems_version: 3.2.15
57
+ signing_key:
58
+ specification_version: 4
59
+ summary: Mailflow library for Rails/ActionMailer library
60
+ test_files: []