私はSendGridを初めて使いました。私が作成した設計済みのHTMLトランザクションテンプレートの代わりに電子メールがいつもプレーンテキストとして送信される理由を考えています。私がsendgridの "プレビュー/テスト"機能を使って電子メールを送信すると、その方法、画像、HTMLなどを正確に見ていきます。私のテンプレート電子メールは常にHTMLではなくプレーンテキストとして送信します
ただし、PHP APIを使用して電子メールを送信すると、電子メール平文でのみ送信されます。私は、どのテンプレートを使用するSendGridを伝えるために、この行を使用します。
$mail->setTemplateId([my template ID]);
は、私は最終的に以下を呼び出す前に、私はPHPのAPIを介して設定されなければならないいくつかの他のものはありますか?
$from = new SendGrid\Email([website name], [website email address]);
$subject = "test subject";
$to = new SendGrid\Email(null, $email);
$content = "";
$mail = new SendGrid\Mail($from, $subject, $to, $content);
$mail->setTemplateId([my template ID]);
//$mail->setASMGroupId(3057);
$mail->personalization[0]->addSubstitution("%email%", $email);
$mail->personalization[0]->addSubstitution("%hash%", $hash);
$apiKey = [my api key];
$sg = new \SendGrid($apiKey);
$response = $sg->client->mail()->send()->post($mail);
コンテンツは、テンプレートに規定されているので、私は$コンテンツのために何かを入れていけない:以下
$sg->client->mail()->send()->post($mail);
はすべて私SendGridコードです。
PHPから送信されたときにテンプレート化された電子メールのプレーンテキストバージョンを送信する理由が分かっている人は、アドバイスをいただければ幸いです。
はあなたに
EDIT
をありがとう、私は私が追加私は、ヘッダーにコンテンツタイプを設定する必要かもしれないと思った:
$mail->addHeader("Content-Type", "text/html");
をしかし、これはちょうど私にエラーを与えます。私は行方不明のものがありますか?コード例に示されるように
をIは、「コンテンツタイプ」ヘッダが、依然として問題を抱えを追加しようとしました。 – poncho