2017-07-27 105 views
-1

我是新来的SendGrid,我试图找出为什么邮件总是以纯文本格式,而不是我做设计的HTML模板事务发送。如果我使用sendgrid“预览/测试”功能发送自己的电子邮件,它通过查找它应该如何,图像,HTML等我的模板邮件总是发送纯文本没有HTML

但是,当我使用PHP API发送电子邮件时,电子邮件是以纯文本形式发送的。我用这条线来告诉SendGrid哪个模板使用方法:

$mail->setTemplateId([my template ID]); 

是否有一些其他的东西,我应该通过PHP API之前,我终于调用下面来设置?

$sg->client->mail()->send()->post($mail); 

下面是我的所有SendGrid代码:

$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); 

由于内容的模板支配我不把任何东西为$内容。

如果任何人有任何想法,为什么它从PHP发送时的唯一送我的模板电子邮件的纯文本版本,任何建议将不胜感激。

谢谢

编辑

我想我可能需要设置内容类型的头,所以我说:

$mail->addHeader("Content-Type", "text/html"); 

但这只是给了我一个错误。有什么我失踪?

+0

我尝试添加的“内容类型”头,但仍然有问题。 – poncho

回答

相关问题