php - Swiftmailer 发送一条消息但不发送另一条消息
问题描述
我的任务是创建一个在线商店。当用户将商品添加到购物篮并开始下订单时,他/她和其中一位经理将使用 Swiftmailer 收到有关订单的电子邮件。
由于某种原因,只有发给经理的电子邮件到达;一个给用户的没有。
这是我的代码:
public static function mailOrder($order_id, $user_email){
$transport = (new Swift_SmtpTransport(App::$app->getProperty('smtp_host'), App::$app->getProperty('smtp_port'), App::$app->getProperty('smtp_protocol')))
->setUsername(App::$app->getProperty('smtp_login'))
->setPassword(App::$app->getProperty('smtp_password'))
;
$mailer = new Swift_Mailer($transport);
ob_start();
require APP . '/views/mail/mail_order_admin.php';
require APP . '/views/mail/mail_order_user.php';
$bodyAdmin = ob_get_clean();
$bodyUser = ob_get_clean();
$message_client = (new Swift_Message("Your order №{$order_id} on " . App::$app->getProperty('shop_name')))
->setFrom([App::$app->getProperty('smtp_login') => App::$app->getProperty('shop_name')])
->setTo($user_email)
->setBody($bodyUser, 'text/html')
;
$message_admin = (new Swift_Message("Сделан заказ №{$order_id}"))
->setFrom([App::$app->getProperty('smtp_login') => App::$app->getProperty('shop_name')])
->setTo(App::$app->getProperty('admin_email'))
->setBody($bodyAdmin, 'text/html')
;
$result = $mailer->send($message_client);
$result = $mailer->send($message_admin);
unset($_SESSION['cart']);
unset($_SESSION['cart_qty']);
unset($_SESSION['cart_sum']);
unset($_SESSION['cart.currency']);
$_SESSION['success'] = 'Thank for Order';
}
解决方案
从您发布的错误消息中,这表明返回App::$app->getProperty('admin_email')
的不是电子邮件地址——它可能将属性名称作为电子邮件地址返回,这对任何人都没有用。检查它:
var_dump(App::$app->getProperty('admin_email'));
然后确保您的配置中有正确的值。
推荐阅读
- python - Rounding float using f-string
- performance - 查询上下文是否在弹性搜索中的过滤上下文之前评估?如何确定评价顺序?
- docker - 石墨在数据点之间具有空值
- bitbucket - 如何使用 EXTRA_ARGS 变量排除多个文件夹?
- google-cloud-platform - 仅在 Big Query Job 完成后触发数据流的方法
- php - php会话购物车不处理大小
- powershell - 如何阅读多个计算机描述?
- java - 如何在 Quarkus 中为 Kafka 使用 TLS?
- html - SPFX webpart 引用 html 中的图像
- arrays - 哈希键无法转换为数组