php - PHP Mailer 不从变量地址发送电子邮件
问题描述
那里进展如何?
我开发了一个 php 脚本来向主要用户和其他一些复制用户发送电子邮件。当我测试它时,将电子邮件和名称直接放入代码中,如下所示:$mail->addAddress('email@provider.com','Any Name');
我成功接收到电子邮件,但是当我从 mysql 数据库中获取它们时:$mail->addAddress($r['userEmail',$r['userFullName']); $mail->addCC($r['userEmail2',$r['userFullName2']);
脚本运行成功,但电子邮件从未到达.
有人以前遇到过类似的事情并且可以帮助解决我的问题吗?
查看我的所有代码:
<?php
include '../dao/conn.php';
require_once('../inc/phpmailer/class.phpmailer.php');
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->Host = 'smtp.domainname.com';
$mail->Port = 25;
$mail->SetFrom('no-reply@domainname.com');
$mail->IsHTML(true);
//pesquisa os projetos finalizados ha mais de 90 dias expecificado pelo envio manual
$sql1 = "SELECT p.PDC_NumControle ID
,p.PDC_Nome Projeto
,DATE_FORMAT(g.GRT_DataInicio,'%d/%m/%Y') DataTermino
,datediff(sysdate(), g.GRT_DataInicio) Dias
,l.`Position Name` NomePresidente
,l.`Position Email` EmailPresidente
,u.ManagerName NomeGerente
,u.ManagerEmail EmailGerente
,u.ArchtectName NomeArquiteto
,u.ArchtectEmail EmailArquiteto
FROM tabgarantiaprojeto g
INNER JOIN tabprojetos p ON g.GRT_NumContProjeto = p.PDC_NumControle
INNER JOIN tabpwdusuario u ON u.USU_NumControle = p.PDC_NumContUsuario
WHERE g.GRT_Status = 1 AND g.GRT_NumControle = $idGarantia AND datediff(sysdate(), g.GRT_DataInicio) >= 90;";
$res1 = mysqli_query($conn, $sql1);
$rowCount = mysqli_num_rows($res1);
if($rowCount > 0) {
$r = mysqli_fetch_assoc($res1);
//Lê os dados do projetos e envia e-mail para o presidente
$diasProj = $r["Dias"];
$projID = $r["ID"];
$NomeProjeto = $r["Projeto"];
$dataTermino = $r["DataTermino"];
$mail->AddAddress($r['EmailPresidente'], $r['NomePresidente']);
$mail->addCC($r['EmailArquiteto'], $r['NomeArquiteto']);
$mail->addCC($r['EmailGerente'], $r['NomeGerente']);
$mail->Subject = "Garantia de Obra - $NomeProjeto";
$mail->AltBody = "";
$mail->IsHTML(true);
$conteudo = 'Here is my html content';
$mail->Body = $conteudo;
$resp = $mail->send();
if ($resp) {
$res = 1;
$msg = "E-mail de aviso enviado com sucesso!";
} else {
$res = 0;
$msg = "Não foi possivel processar sua solicitação por causa do seguinte erro: " . $mail->ErrorInfo;
}
$mail->ClearAddresses();
$mail->ClearCCs();
$mail->ClearBCCs();
}
Any help will be appreciated.
解决方案
尝试首先将值设置为变量,例如
$addcc1 = $r['EmailArquiteto']; $addnom1 = $r['NomeArquiteto'];
然后将邮件设置为该变量:
$mail->addCC($addcc1, $addnom1);
这使得您还可以进行故障排除,例如:
echo "$addcc1 - $addnom1" 以确保它们符合您的预期。
推荐阅读
- javascript - 使用 Mocha 在 NodeJs 中测试删除方法时出错
- html - 如何在不破坏布局的情况下缩短表单中的弹性项目?
- android - 如何从 Android Developer Console 上的应用列表中清除已删除的应用?
- python - 有没有办法添加叠加到散景图中突出显示基于 x 轴数据点的某些区域。见下图
- numpy - 从随机分布构建一个 numpy 数组,直到最后一列超过阈值
- c# - 如何将图像发送到 Rest API?
- angular - 试图了解 Angular 7 应用程序中的文件结构
- java - connerDb 方法代表什么?
- r - 谁能帮我在 rbacon 中添加一个衰退?它看起来很简单,但它总是抛出错误
- wordpress - 在 5.2.1 版(2019 年 5 月)中在 wordpress 中创建新帖子时如何证明段落块的合理性