php - 在 sendgrid 电子邮件中的电子邮件内容中包含我的 html 代码

标签 php html sendgrid

我制作了单独的 html 文件并使用 file_get_content 我使用它将其包含在我的内容部分中,但是当我收到电子邮件时,html 代码显示为文本,而不是 html 文件的输出应该是什么

<html>

<head>
</head>
<body>

<div>
<div class="popup-logo" style="width: 100px;">
<img src="logo.png" alt="jk" style="margin-left: 45%;width: 200px;height: 50px;"></div>
</div>
    <div id="popup" style="width: 100%;margin-left: auto;margin-right: auto;background: #FFFFFF;-moz-box-shadow: #64686e 0px 0px 3px 3px;-webkit-box-shadow: #64686e 0px 0px 3px 3px;margin-top: 1%;">
	
		<div class="search-col" style="border-bottom: 1px solid #e5e5e5;float: left;margin-bottom: 5px;padding: .2px;width: 100%;table, th, td {
    border: .5px solid silver;border-collapse: collapse;">

  
        
	<div class="select-style">
    	<div class="select-style-text" style="width: 100%;height: 67px;float: left;padding-left: 10px;">
                 <p style="color: #840107;font-family: Hind;font-size: 25px;font-weight: 600;text-align: left;margin-left: 40%;text-overflow: none;text-indent: 2em;">Dispatched Details</p>
				 
				 </div>
				  <div class="da" style="color:green;margin-left:85%;">
				 <?php 
				
				 $date = date('d-M-Y H:i:s');
				 echo "Date"."&nbsp;". $date;
				 ?>
				 </div>
     
</div>
 
     
    </div>

<div>

<div id="wer">

<h3 style="padding: 0.5px;padding-left: 5px;">Order Number:<?php echo $_SESSION['id'];?></h3>
<h3 style="padding: 0.5px;padding-left: 5px;">Vendor details:</h3>
<div id="wer" style="margin-left:0%;">
<table style="width: 100%;border: 1px solid silver;border-collapse: collapse;text-align: center;">
  <tr>
  <th style="border: 1px solid silver;border-collapse: collapse;text-align: center;">VendorName</th>
    <th style="border: 1px solid silver;border-collapse: collapse;text-align: center;">Code</th>
    <th style="border: 1px solid silver;border-collapse: collapse;text-align: center;">Email</th>
	<th style="border: 1px solid silver;border-collapse: collapse;text-align: center;">Contact</th>
  </tr>
  <tr>
    <td style="border: 1px solid silver;border-collapse: collapse;text-align: center;"><?php echo $_SESSION['vnm']?></td>
    <td style="border: 1px solid silver;border-collapse: collapse;text-align: center;"><?php echo $_SESSION['vcd']?></td>
	<td style="border: 1px solid silver;border-collapse: collapse;text-align: center;"><?php echo $_SESSION['vem']?></td>
	<td style="border: 1px solid silver;border-collapse: collapse;text-align: center;"><?php echo $_SESSION['vcn']?></td>

  </tr>
 
  
</table>
</div>

<div id="wer" style="margin-top:3%;">

<h3 style="padding: 0.5px;padding-left: 5px;">Other Details:</h3>
<style>

</style>
<table style="width: 100%;border: 1px solid silver;border-collapse: collapse;text-align: center;">
  <tr>
    <th style="border: 1px solid silver;border-collapse: collapse;text-align: center;">Driver name</th>
    <th style="border: 1px solid silver;border-collapse: collapse;text-align: center;">Driver contact </th>
	<th style="border: 1px solid silver;border-collapse: collapse;text-align: center;">Vehicle Number</th>
  </tr>
  <tr>
    <td style="border: 1px solid silver;border-collapse: collapse;text-align: center;"><?php echo $_SESSION['drivname']?></td>
	<td style="border: 1px solid silver;border-collapse: collapse;text-align: center;"><?php echo $_SESSION['dcontact']?></td>
	<td style="border: 1px solid silver;border-collapse: collapse;text-align: center;"><?php echo $_SESSION['vnumber']?></td>

  </tr>
 
  
</table>
</div>
<?php session_destroy();?>
</div></div></div></body>
</html>

<?php
require '/sendgrid-php/vendor/autoload.php';

if(require("sendgrid-php/vendor/autoload.php"))
    {echo "path found";}

$from = new SendGrid\Email(null, '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bed58ffed9d3dfd7d290ddd1d3" rel="noreferrer noopener nofollow">[email protected]</a>');
$subject ='Order number is'; 
$to = new SendGrid\Email(null, '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a3c891e3c4cec2cacf8dc0ccce" rel="noreferrer noopener nofollow">[email protected]</a>');
$r=file_get_contents('ret.html');
$content = new SendGrid\Content("text/plain",$r);
$mail = new SendGrid\Mail($from, $subject, $to, $content);
$apiKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$sg = new \SendGrid($apiKey);

$response = $sg->client->mail()->send()->post($mail);
echo $response->statusCode();
echo $response->headers();
echo $response->body();
?>

最佳答案

您必须包含该文件,将其作为 PHP 进行评估并将其捕获到变量中,而不是将未评估的内容存储在字符串中:

ob_start();
include("ret.html");
$r = ob_get_clean();
$content = new SendGrid\Content("text/html",$r);

顺便说一下,您应该考虑使用模板引擎来完成这项工作。

关于php - 在 sendgrid 电子邮件中的电子邮件内容中包含我的 html 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38373227/

相关文章:

php - 在php中为什么10 & 10 == 10返回0?

php - 当 var 很大时 return var 不起作用?

html - 从模型 AngularJS 创建表

PHP 未从我的服务器文件夹中获取图像

php - Docker 进程分离和源代码控制

javascript - 当选择菜单关闭或隐藏(从 View 中消失)时需要触发事件。我可以捕获哪个事件来完成此任务?

android - 从 Android Chrome 中的时间输入中删除箭头

php - 如何在 Laravel 中处理来自外部服务器的传入 POST 数据

c# - 用于 C# 的发送网格 API

java - 创建了 sendgrid 电子邮件模板,如何从 Java 调用它