如何在 php Sendinblue 电子邮件中添加 php 变量?

How to add php variables in php Sendinblue emails?

我想在 php 中使用 Sendinblue 交易电子邮件发送电子邮件。 问题是我需要在我的电子邮件中添加 php 变量,但是在我收到后,php 变量并没有变成文本!

这是我收到的:

https://drive.google.com/file/d/1--c84eZcSJpp9icfsNZeXxj048Y-d3f9/view?usp=drivesdk

这是我的 php 代码:

<?php

// Check for empty fields
if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['phone']) || empty($_POST['message']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
  http_response_code(500);
  exit();
}

$name = strip_tags(htmlspecialchars($_POST['name']));
$email = strip_tags(htmlspecialchars($_POST['email']));
$phone = strip_tags(htmlspecialchars($_POST['phone']));
$message = strip_tags(htmlspecialchars($_POST['message']));

// Create the email and send the message
$subject = "HMP Reseller - New Message";
$body = "You have received a new message from HMP Reseller contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email\n\nPhone: $phone\n\nMessage:\n$message";

include 'Mailin.php';
$mailin = new Mailin('hosteymega@gmail.com', 'API-KEY');
$mailin->
addTo('hosteymega@gmail.com', 'HosteyMega Hosting')->
setFrom('admin@hosteyme.ga', 'HosteyMega Admin')->
setReplyTo('$email','HMP Reseller Client')->
setSubject('$subject')->
setText('$body')->
setHtml('<h2>$body</h2>');
$res = $mailin->send();
/**
Successful send message will be returned in this format:
{'result' => true, 'message' => 'Email sent'}
*/

?>

有什么办法可以解决吗?

setText('$body') 中你使用了单引号,而不是双引号,所以 $body 变量没有得到 auto-expanded - 它作为文字字符串传递。你应该使用双引号,或者简单地将它作为变量本身传递,因为它应该已经是一个字符串(所以只使用 setText($body) 不带任何引号)。

此外,为了避免任何可能的转义问题,您可能希望切换到字符串连接来构建主体变量,或者通过将它们括在大括号中来使用更明确的变量扩展,如下所示:

$body = "You have received a new message from HMP Reseller contact form.\n\n"."Here are the details:\n\nName: ${name}\n\nEmail: ${email}\n\nPhone: ${phone}\n\nMessage:\n${message}";