Почему я не могу заставить sendgrid заменить мои переменные в моем шаблоне при использовании их smtpapi? - PullRequest
1 голос
/ 22 декабря 2011

Я считаю, что следовал документации на сайте SendGrid, но до сих пор, когда я получаю электронное письмо, отправленное через их API, оно никогда не заменяет замены, указанные в заголовках x-smtpapi. Я использую HTTParty для отправки запроса следующим образом:

HTTParty.post(Sendgrid::Postman.api_url, { 
    :query => params.merge({ "api_user" => @config[:api_user], "api_key" => @config[:api_key] }), 
    :headers => headers, :format => :json
  })

"params" выглядят так:

{"from"=>"noreply@foo.com", "text"=>"Happy Holidays -first_name- -last_name-,\nI hope this message finds you in good health and high spirits.", "to"=>["foo@gmail.com"], "subject"=>"foo"}

Заголовки выглядят так:

{"X-SMTPAPI"=>"{\"sub\": {\"-first_name-\": [\"Foo\"], \"-email-\": [\"foo@gmail.com\"], \"-login-\": [\"heavysixer\"], \"-last_name-\": [\"Bar\"]}, \"to\": [\"foo@gmail.com\"]}"} 

Почта всегда успешно доставляется, но когда она поступает в папку «Входящие», значения, которые должны были быть заменены, по-прежнему выглядят как -first_name- & -last_name-

Что мне не хватает? Я возился с этим целый день?

----------------------------------------------- ------------

UPDATE: Следуя совету, приведенному ниже, я попытался вставить параметры x-smtpapi в сообщение формы, но получаю тот же результат. Строка запроса для моего поста теперь выглядит следующим образом:

params = {"api_user" => 'foo', "api_key" => 'bar', "from"=>"noreply@foo.com", "text"=>"Happy Holidays -first_name- -last_name-,\nI hope this message finds you in good health and high spirits.", "to"=>["foo@gmail.com"], "subject"=>"foo", "x-smtpapi"=>{"sub"=>{"-first_name-"=>["foo"], "-email-"=>["foo@gmail.com"], "-login-"=>["foo"], "-last_name-"=>["bar"]}}}

HTTParty.post(Sendgrid::Postman.api_url, :query => params, :format => :json)

1 Ответ

1 голос
/ 22 декабря 2011

Их документация подразумевает, что x-smtpapi должен быть одним из опубликованных параметров, а не заголовком http.

...