Я работаю со службой поддержки SendGrid, чтобы определить, почему категории перестали работать в моих многоэтапных кампаниях по электронной почте (подходит только текстовая). Если я намеренно установлю тип содержимого электронного письма в формате HTML как «text / plain», электронное письмо отобразит данные заголовка, текст и необработанный html на одном электронном письме, но получит свою категорию. В противном случае электронная почта выглядит правильно, но нет категории.
SendGrid попросил меня прислать им копию полезной нагрузки, и я не уверен, что это такое и как его найти. Они сказали: «Если вы знакомы с проведением теста telnet, то это то, что мы ищем». Я не знаком с тестами telnet. Это информация из скриншота, который они предоставили в качестве примера того, что они ищут:
220 Hi! This is Rob's hMailServer!
ehlo panoply-tech.com
250-SAGE013963
250-SIZE 20480000
250 AUTH LOGIN PLAIN
AUTH LOGIN
334 VXN1ea5bbVUG
YT3TQBHbhM9WBHKTDGUjeD65WQ20=
235 authenticated.
MAIL FROM: mayes@panoply-tech.com
250 OK
RCPT TO: cstickings@demosagecrm.com
250 OK
DATA
354 OK, send.
Subject: This is a test email
Hi Clemence,
Just sending you a test email.
.
250 Queued <25.927 seconds>
Я пошел в .rvm / gems / ruby-2.3.3 / gems / actionmailer-4.2.8 / lib / action_mailer / base.rb и нашел метод с именем "set_payload_for_mail", но то, что он производит, похоже на их пример:
{"mailer":"B2c::B2cSendGridMailer",
"message_id":"5d0b979767c26_16f2c3fc04043f9c84968e@Domain-Person.local.mail",
"subject":"TEST: 26_txt","to":["person@domain.com"],
"from":["info@another.com"],"date":"2019-06-20T09:26:31.000-05:00",
"mail":"Date: Thu, 20 Jun 2019 09:26:31 -0500\r\nFrom: info@another.com\r\nTo: person@domain.com\r\nMessage-ID: \u003c5d0b979767c26_16f2c3fc04043f9c84968e@Domain-Person.local.mail\u003e\r\nSubject: TEST: 26_txt\r\nMime-Version: 1.0\r\nContent-Type: text/plain;\r\n charset=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\n
X-SMTPAPI: {\"category\":[\"html_false\"]}\r\n
X-SMTPAPI: {\"filters\": {\"ganalytics\": {\"settings\": {\"enable\":1}}}}
\r\n\r\nHi there, but text\r\n"}
Я знаю, что в почтовом ящике Google вы можете нажать «Показать оригинал» для получения электронного письма и просмотреть информацию в заголовке и т. Д. Я отправил это им, но у них не было того, что им нужно.
def b2c_tester(html=false, content)
e_domain = 'careinhomes.com'
@mailer_path = "app/views/b2c/b2c_send_grid_mailer"
@from = "info@careinhomes.com"
@recipients = ['gina@pipelinesuccess.com']
@subject = html ? "#{DateTime.now.minute.to_s}_html" :
"#{DateTime.now.minute.to_s}_txt"
header_category = {"category": ["html_#{html}"]}
headers['X-SMTPAPI'] = header_category.to_json
if html
msg = tester_mail_with_opts({domain: e_domain}, content)
else
msg = tester_mail_plain_text_with_opts(
"b2c_tester",{domain: e_domain})
end
msg
end
#content ex: 'text/plain', 'text/html', 'multipart/alternative', etc
def tester_mail_with_opts(delivery_options={}, content=nil)
mail_opts = set_mail_opts(delivery_options)
unless content.nil?
mail_opts[:content_type] = content
end
mail mail_opts
end
def set_mail_opts(delivery_options={})
@subject = "TEST: #{@subject}" unless Rails.env.production?
# Required
mail_opts = {
to: @recipients,
from: @from,
subject: @subject,
}
mail_opts[:template_path] = @template_path if @template_path
mail_opts[:content_type] = @content_type if @content_type
# Do delivery options
mail_opts[:delivery_method_options] = DELIVERY_OPTIONS
mail_opts[:delivery_method_options] =
mail_opts[:delivery_method_options].merge(delivery_options)
unless delivery_options.blank?
mail_opts
end