gpt4 book ai didi

ruby-on-rails - Rails, Devise, Postmark Gem - 使用邮戳模板设计邮件

转载 作者:行者123 更新时间:2023-12-04 00:10:15 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何设置我的 Rails 4 应用程序,以便设计邮件程序使用 Postmark 模板通过 Postmark 发送。

我的 gem 文件中有 postmark-rails gem。

我一切正常,除了我不知道如何将确认 token 提供给邮戳。

在 Postmark 中我有这个模板:

To get started, please confirm your account below:

action_url_Value

我不知道如何将以下行而不是操作 url 值放入模板中:

<%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %></div>

我已将以下内容添加到我的 initializer/devise.rb 中:

config.mailer = 'PostmarkDeviseMailer'

在 postmark_devise_mailer.rb 中,我有:

class PostmarkDeviseMailer < ActionMailer::Base
include Devise::Mailers::Helpers

def message
mail(
:subject => 'Hello from Postmark',
:to => 'sender@address.com',
:from => 'sender@address.comm',
:html_body => '<strong>Hello</strong> dear Postmark user.',
:track_opens => 'true')
end
end


default from: "sender@address.com"

def confirmation_instructions(record)
devise_mail(record, :confirmation_instructions)
end

def reset_password_instructions(record)
devise_mail(record, :reset_password_instructions)
end

def unlock_instructions(record)
devise_mail(record, :unlock_instructions)
end

我不太清楚接下来的步骤。有没有人想出如何使用邮戳模板作为设计交易电子邮件的邮件程序?

最佳答案

您需要做的第一件事是在 app/mailers 中创建一个自定义邮件程序,在此示例中它是 user_mailer.rb 如果您正在阅读此答案,我是假设你们都有邮戳帐户,如果没有,请在这里获取:Postmark Registration我假设您已经选择了模板和布局。

要记住的一个重要事项是确保为模板分配别名。这可以在模板标题上方的灰色小文本小链接中找到。

self.template_model 中的项目是 100% 可定制的,并且在您的布局/模板编辑器中显示为:{{product_name}}

class UserMailer < Devise::Mailer
include PostmarkRails::TemplatedMailerMixin

helper :application
include Rails.application.routes.url_helpers
include Devise::Controllers::UrlHelpers

default from: 'from_you@something.com'
default reply_to: 'support@hammer-lane-industries.com' # Optional

def confirmation_instructions(record, token, opts={})
@admin = record
@token = token
# this will pass the data via the postmark-api to your template / layout these fields are 100% customizable and can be cahnged in your template / layout
self.template_model = { product_name: 'your product',
username: @user.username,
email: @user.email,
confirmation_url: user_confirmation_url(@resource, confirmation_token: @token, subdomain: 'add subdomain here if needed'),
login_url: login_root_url(subdomain: 'add subdomain here if needed'),
trial_length: '14-days',
sender_name: 'What ever you want',
action_url: user_confirmation_url(@resource, confirmation_token: @token, subdomain: 'add subdomain here if needed'),
parent_company_name: 'Your company name',
company_address: 'Your address'}
mail to: @admin.email, postmark_template_alias: 'devise_user_confirmation'
end
end

冲洗并重复解锁和密码邮件程序,您只需要知道您将向其发送 token 的 url。

完成这一切:

你需要在你的设计资源模型中添加一个小块,在这个例子中我使用了 user.rb

class User < ApplicationRecord
devise :database_authenticatable, :confirmable,
:recoverable, :rememberable, :validatable,
:timeoutable, :trackable

def devise_mailer
UserMailer # Must match your mailer class
end
end

一旦完成,重启你的 rails 服务器,试一试!

我希望这可以帮助您将邮戳模板 (API) 连接到 Devise mailers

关于ruby-on-rails - Rails, Devise, Postmark Gem - 使用邮戳模板设计邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37039500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com