gpt4 book ai didi

ruby-on-rails - 如何使用 ruby​​ on rails 在 sendgrid 中动态设置取消订阅链接

转载 作者:行者123 更新时间:2023-12-04 05:40:54 25 4
gpt4 key购买 nike

我正在使用 sendgrid 发送邮件。大约有 20 个邮件模板。

我在 sendgrid 应用程序的设置中设置了取消订阅模板 “订阅跟踪” .

我的要求是不同邮件模板的取消订阅链接的不同文本。

目前只有一个静态unsubscribe link在 sendgrid 应用程序中设置 “订阅跟踪”来了。

任何人都可以帮助我如何在我的 user_mailer 中动态设置取消订阅链接类(class)。

我点击了这个链接 To give unsubscribe link in the mail using sendgrid XSMTPAPI header .但我不知道如何在 ruby​​ 中实现它。

以下是我在 user_mailer class 中尝试过的代码然而。

    def abuse_notification(post,current_user,eventid)
headers['X-SMTPAPI'] = '{"filters":{"subscriptiontrack":{"settings":{"enable":1,"text/html":"Unsubscribe <%Here%>","text/plain":"Unsubscribe Here: <% %>"}}}}'.to_json()
UserNotifier.smtp_settings.merge!({:user_name => "info@xxxx.example.com"})

@recipients = "test@xxx.example.com"
@from = "xxxx"
@subject = "Report Abuse Notification"
@sent_on = Time.now
@body[:user] = current_user
@body[:event] = post

end

最佳答案

您走在正确的 rails 上,但是要使用 SendGrid SMTP API,您需要将 header 添加到每封电子邮件中,而不是添加到您的设置中。在您的 SMTP 设置中,您将(至少)存储您的 user_name , password , address , SendGrid Docs ,进一步详细配置。与 ActionMailer您可以按如下方式配置它:

ActionMailer::Base.smtp_settings = {
:user_name => 'sendgridusername',
:password => 'sendgridpassword',
:domain => 'yourdomain.com',
:address => 'smtp.sendgrid.net',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}

配置 ActionMailer 后,您需要设置 UserNotifier类看起来类似于以下内容。每个单独的方法都会设置 X-SMTPAPI标题:
class UserNotifier < ActionMailer::Base
default :from => "bob@example.com"

def send_message(name, email, message)
@name = name
@email = email
@message = message

headers['X-SMTPAPI'] = '{"filters":{"subscriptiontrack":{"settings":{"enable":1,"text/html":"Unsubscribe <%Here%>","text/plain":"Unsubscribe Here: <% %>"}}}}'

mail(
:to => 'george@example.com',
:from => email,
:subject => 'Example Message'
)
end

end

请注意 X-SMTPAPI header 是 JSON,如果你想将 Ruby 对象转换成 JSON,你需要使用 JSON gem 。

关于ruby-on-rails - 如何使用 ruby​​ on rails 在 sendgrid 中动态设置取消订阅链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18079692/

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