Skip to content

Commit 1ad3a0a

Browse files
authored
Merge pull request #18 from nativeapptemplate/sendgrid_to_resend
Replace SendGrid SMTP with Resend for transactional email
2 parents 8bd0dcf + b31f0d3 commit 1ad3a0a

6 files changed

Lines changed: 17 additions & 23 deletions

File tree

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ gem "valid_email2"
6060
gem "importmap-rails"
6161
gem "tailwindcss-rails", "~> 3.0"
6262
gem "rack-attack"
63+
gem "resend"
6364
# Fix LoadError: cannot load such file -- csv
6465
gem "csv", "~> 3.3"
6566

Gemfile.lock

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ GEM
177177
globalid (1.3.0)
178178
activesupport (>= 6.1)
179179
hashdiff (1.2.1)
180+
httparty (0.24.2)
181+
csv
182+
mini_mime (>= 1.0.0)
183+
multi_xml (>= 0.5.2)
180184
i18n (1.14.8)
181185
concurrent-ruby (~> 1.0)
182186
image_processing (1.14.0)
@@ -244,6 +248,8 @@ GEM
244248
stimulus-rails
245249
turbo-rails
246250
msgpack (1.8.0)
251+
multi_xml (0.8.1)
252+
bigdecimal (>= 3.1, < 5)
247253
net-imap (0.6.3)
248254
date
249255
net-protocol
@@ -353,6 +359,8 @@ GEM
353359
regexp_parser (2.11.3)
354360
reline (0.6.3)
355361
io-console (~> 0.5)
362+
resend (1.0.1)
363+
httparty (>= 0.21.0)
356364
responders (3.2.0)
357365
actionpack (>= 7.0)
358366
railties (>= 7.0)
@@ -507,6 +515,7 @@ DEPENDENCIES
507515
rack-attack
508516
rack-cors
509517
rails (~> 8.1)
518+
resend
510519
rubocop-rails-omakase
511520
seed-fu (~> 2.3)
512521
selenium-webdriver (>= 4.20.1)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4MNeMK5EebWv8Iw1wWkcxjDj6qYVOZ2eVE1n0Dj1YFxPjpdadR4wkgZ3w67zICAsZPR53QJKTvUyZGm2ColHLC8CS2PslEx2sI5xO6x+YWeRCW0ln76AaENiR7GEnvmLaztrP61YwRXHfJ4ElfOTnYhlpsb7GL4aU3sFnKAxLzaPoOG2kxkspF5qyKLYP7CjpddtW4XLj43dci+/PQ4CKQJ/2qox36MdKd9LSu4L/aJa9Um3HpmhlXivRdzoNtrcFiGk2WkHp3FZr6ivJiy+bOviFpyQqVW3VuaR/hWO/EkuXvqPQFZ9d6PDy+WwSHq7Y90a1EtM5boE4/+CCXOkmb5AvvK9pKZ50q0aA4GO0Y1c4vEPXfVehqsMbsLaO16kl5T/wroxlFIHF3P7FPvH5I3HPe/sS0SAhQRtM49s/hSTcsFRndlSntAnQgjhg0sEfn5fyW8oWGovktxN/yjJ1CjJijxzaxiRy8ZBmc7+LXM0tL7tViCcYy/ZJmCIhx4ar9v3Y9XBCWaeAffs/q3u2z8HP31u4hNrYLe8WoIEz0B/zvjiGusp5SvaJLqpUb6H9K236j0tFL4Ket6rvWKHos6T3QFrhC+rpLTqGuTJIUjAmu3JQzFcLPd1ODCu797btwgVs2yho/kUtI4W3sWO4UbHvZ1vIZKx/EwA90AWZfr2rTAniN3sfEbrfDLio4zZ3XQSaetQPPkQtMjydH8NT+BtU9cawDaNUnMUytUTp+/nIbXxO5dCZXD9bP2qyRRSQC3CIt1r1n5nC4orG7K0c6rI/Cph+K9xBPfGOVY/eGkIBXeoCq3LckVEjarx7rVOh2E6GatwtEdrY/N1+UZuvVejLYk9QySisN3BADc09gY0xWjE--HNydo9b7XOBKYvuF--jjKBYZ/kKbcyl8LHDnZBmw==
1+
aEQd1vmI5JID/hBqHSH6R9r9/cAjqb7I1Y8Bd37HMvMeGM+KwqiMYjfqW5LIXWYAsQrfAu2ewPpUfslmfRpf5PRcUhn6UT3mkcluWiyBBSA9Qfu5k7KgxHG1wXRp+fKngNZybnmoOjltYolEZNlgXthu5y0a0i1tP1tmkVf5lUf2MMRm3ZHwnNsgdVnXhbIp+peXHJbEkaN9boXHh7oLvqkWf4vvX4/QRdQeRTZIy56vv0chQZXZRtPwPPIpCKlS6KvnQBSLpin4C32dV0WMe5DbFElQSBmEku1ahUHrx8HFGGOzpl7GQ+Xx4MoqkqMLX8D7GM0u6Hz65Vqi0oqvJer+bFhlL5/bkdjLNozW+GQe40cJdrWOs284EXbv6vB1rGGOxmC1Z+XspibL6CdS4bvH/+CFadcsCRuwUrADOpYwO5ldCMZaR+N5pCRb5fgWokZiNKoi8e9xDjTSasYtWhTx7StLELXPWeUUDIcaUWVmLr/r+p+SjFIy0hnTVbXywbuzmGT2NVBsqKfmewDWVKpYKsDtCxe2pS4uufbF/mW1SXbbzyYRUCyN48jLloA1Go+2170RUkfS2SahgsgZRYkjgJBfvEO5HEQN0uDI1eH8QhQWUp8eE40JszDjA8x1ehK4TJ3hcg0lFuaFuC3N6A3pTY0SFYKZ0YnljivuD49oxVeEaiWFyL+J3ItliTJd41bkZuohtKSF/Gk+s4YK6ec+KGMSk4w=--B/B8n61Uakp5ANZk--gMDyaxxROS024p6FHcY8rQ==

config/credentials/staging.yml.enc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ZoArgQoVaUD+KabA+oVMGJwUcBTxaNfnWsOEvweIFQ0vK3u4TJ8YEF016DAEPegnbA7gudLdiQzaIyhGsEnIY3MZGowKF7Xtf+b/nsjOey6c0Rkdsozh4OpE8jHVA+5cEV6AnjfOn402obe4sGx6YVADkojwkqh+eKJdKjA/6MELFJSkZVQoJoR/tQFKXSqBW7oyD/ycqydC1bKIaYb45L7mCnw+Hw3/wdBW808uLuTk9Upbqq4O1FopkWHj2xD+Z8SF6CmW4JznETI1nW9MvkljIN5NDOXRAZ9JujPQY7UBDsr8+Vhd2HgDFomYulHAswL7YkdilNKPc8P3+uMjK97/lvX6rL6hm7sj5ayXPiOF5l+UoBFRcW3rm0JXxo7yrIXAnpxjpqWXEK1niceNu15DhkwbdK+TRjpkyGAa+fJoK/hg0OOpPWyjoT7OJU0BCfcpksv39bMPjKm9mZUMyYn8qvrtD7HDL2Cg8SVED4MpFvNmxsErSANN+xanI7xs74mG0d3DymKNbF6bGNF75Y2epfodg+9zaeNCjkLwQK5lCQuSgJ1ixevWP3WsHNOjELSna5xBh8myOrQU5KD4iXS1GGhOHexafZdoy6qyNq0dTuI1z5FWE3ASDj9G5cy5OW3USi/2poYA+cdsf+VFaD9iBTIwryMpIGRxUsD+H2GFkN2NINU0lU8aZXmo1nNSHJJUN43s+EXrMfbopAlwZQT34ut8LcFPTUqWjVzY7sK1ykHe+pt+M5BSSxUAfa9/251bMtdqqkAqF7LYXv2kamQUi39eKTPBAGfMzEmORg2BKpgHdkSiK8RtQ+cJlw5GZQmnKrvudB78B0833LrH44OJtyVOawoZClNqzFbIW4v1iiiT--SteN2xYjnwV6iyoT--ICfaAYgEkHXmyFHnzByPxg==
1+
lTRpH9NgSv05A5A9JTUODiWr/ItLw8NwyAwJ7dwYa/lAwadeaEQkmmIbJbfcEpjC/xvUXjv0w+2LNIW5io+wEfD/WZ/OyVN9wa234lbRClCyTlQ+osLK5VhzkMoArOj73WzVNQXPifHDvodcmZWgLxHY4vnCZfTYPKKKxaAKfb6jc0460/XIkWwEyrphrV/F2vNkaTdKeLYJvYha4ext3GPm6L3QyBNfwvgCqLNPlogs/p5sf1lnTXjo9GoM7l530N00mRNe6Txc1ZJWaZUWTuLZj1hbTpPMC8aLWiBmt/uxIj+yBi7MGqy6zJu77J/j+UrVOeK8s/p6EBd60I+fnapBMcv4Nzpe0BKPgD5jmpPfO4uuabYs3mVJRUujyNsz0JGifisBxOdyCJboO8utf1k94TCqm/DwqDP6dFthjz0QYtELQRUv7CqHYAlwsYw8X+9Fcsn0NGYr7kLKYD+5NVXIHriu5rUfQxUTl2M4iEW5TGQ+0K5NEZrcKgaCiBHP/rJTIWOjwEV/eEpAMBvZy7JdXBfxtWJ4N2vv0Oz4cQesFDXAoIkJ3LPVk7Ws4rslflN8mHvTq8qU9Uv0/g+/5k5oqjSEjFHAK1JEVB0nTebEk2q8DQuoWhDm/8FAGJa5GJYqWqnAaEBdXlcEvFQBV6a/g6MUv7cvkR2p1UaYnUtIaJI3a56MINErcnwsMiDWJwGcDlsiIilSv/UtxxLhFoK6Ml6SIAg=--tD4uvk6CpSfFWXB2--wCTBHN+O0ztIpU8++9fGqw==

config/initializers/mail.rb

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,7 @@
66
ActionMailer::Base.default_url_options[:host] = ConfigSettings.app.domain
77
ActionMailer::Base.default_url_options[:protocol] = "https"
88

9-
shared_settings = {
10-
port: 587,
11-
authentication: :plain,
12-
enable_starttls_auto: true,
13-
domain: ConfigSettings.site.domain
14-
}
15-
16-
settings = {
17-
address: Rails.application.credentials.dig(:smtp, :host),
18-
domain: Rails.application.credentials.dig(:smtp, :domain),
19-
user_name: Rails.application.credentials.dig(:smtp, :username),
20-
password: Rails.application.credentials.dig(:smtp, :password)
21-
}.merge(shared_settings)
22-
23-
ActionMailer::Base.smtp_settings.merge!(settings)
9+
ActionMailer::Base.delivery_method = :resend
10+
Resend.api_key = Rails.application.credentials.dig(:resend, :api_key)
2411
end
2512
end

lib/templates/rails/credentials/credentials.yml.tt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ active_record_encryption:
77
deterministic_key: <%= SecureRandom.alphanumeric(32) %>
88
key_derivation_salt: <%= SecureRandom.alphanumeric(32) %>
99

10-
# SMTP
11-
smtp:
12-
host:
13-
domain:
14-
username:
15-
password:
10+
# Resend
11+
resend:
12+
api_key:

0 commit comments

Comments
 (0)