Ich habe die sendgrid-ruby Edelstein zum Senden von E-Mails über SendGrid implementiert. Ich verwende Vorlagen ausschließlich für meine zu sendenden Nachrichten. Ich habe alles auf der Outbound-Seite mit der TemplateMailer-Implementierung arbeiten.Wie übergebe ich unique_args an die SendGrid :: TemplateMailer API von Ruby on Rails
Dies ist der Code:
unique_args = {unique_args: {MyAuditNumber: "9999999"}}
# Create a sendgid recipient list
recipients = []
recipient = SendGrid::Recipient.new(to_email)
merge_vars.each do |mv|
Rails.logger.debug(mv)
recipient.add_substitution('*|' + mv["name"] + '|*', mv["content"])
end
recipients << recipient
# Create a sendgrid template
template = SendGrid::Template.new(template_id)
# Create a client
client = SendGrid::Client.new(api_key: Rails.configuration.sendgridkey)
mail_defaults = {
from: from_email,
from_name: from_name,
to: to_email,
to_name: to_name,
bcc: bcc,
html: ' ',
text: ' ',
subject: subject
}
mailer = SendGrid::TemplateMailer.new(client, template, recipients)
# send it
lres = mailer.mail(mail_defaults)
Das letzte, was ich tun möchte, ist eine eindeutige Kennung für jede Nachricht hinzuzufügen, die ich sende.
ich gelesen habe sowohl die SendGrid Dokumentation sowie mehrere Fragen und andere Artikel ( how to get response of email sent using sendgrid in rails app to save in database http://thepugautomatic.com/2012/08/sendgrid-metadata-and-rails/ https://sendgrid.com/docs/Integrate/Code_Examples/SMTP_API_Header_Examples/ruby.html )
Ich kann sagen, dass ich brauche unique_args an den SMTP-API hinzuzufügen. Aber was ich nicht herausfinden kann ist, wie man das in die SendGrid-Routinen übergibt.
Ich habe versucht, Dinge wie:
recipient.add_to_smtpapi(unique_args)
und
recipient.add_to_smtpapi(unique_args.to_json)
und
mail_defaults = {
smtpapi: unique_args,
from: from_email,
...
und
mail_defaults = {
smtpapi: unique_args.to_json,
from: from_email,
...
Diese Versuche führen im Allgemeinen zu einer Fehlermeldung wie: nicht definierte Methode `add_filter‘ für "{\" unique_args \ ": {\" MyAuditNumber \ ": \" 9999999 \ "}}": String
Weiß jemand, Wie übergebe ich unique_args bei Verwendung des TemplateMailer?