mailflow-rails 0.0.1

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: 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: []