Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHPMailer将电子邮件发送到MySQL上的单个电子邮件地址_Php_Email_Phpmailer_Html Email - Fatal编程技术网

通过PHPMailer将电子邮件发送到MySQL上的单个电子邮件地址

通过PHPMailer将电子邮件发送到MySQL上的单个电子邮件地址,php,email,phpmailer,html-email,Php,Email,Phpmailer,Html Email,“搜索结果”会显示一个表格,每行末尾都有一个“电子邮件按钮”。访问者点击一个“电子邮件按钮”,系统将向该注册“用户”发送一封电子邮件 PHPMailer和邮件系统工作正常,但仅限于静态电子邮件 问题:我需要更改哪些代码才能将电子邮件发送到访客选择的单个电子邮件。我在$query中添加了一个“WHERE”条件,但似乎没有任何影响 具有以下两行的邮件功能正在运行 $mail->AddAddress("support@domain.co.uk", "John Doe"); $mail->A

“搜索结果”会显示一个表格,每行末尾都有一个“电子邮件按钮”。访问者点击一个“电子邮件按钮”,系统将向该注册“用户”发送一封电子邮件

PHPMailer和邮件系统工作正常,但仅限于静态电子邮件

问题:我需要更改哪些代码才能将电子邮件发送到访客选择的单个电子邮件。我在
$query
中添加了一个“WHERE”条件,但似乎没有任何影响

具有以下两行的邮件功能正在运行

$mail->AddAddress("support@domain.co.uk", "John Doe");
$mail->AddAddress("admin@domain.co.uk");
以下行不工作

$mail->AddAddress("$email", "John Doe");
错误消息显示:

“无效地址:无法发送邮件。”
“邮件程序错误:您必须至少提供一个收件人电子邮件地址。”

这似乎是错误的

$query = "SELECT email FROM db_name WHERE email=$row[email]";
它从哪里获得$row[电子邮件]?您需要在其中包含一个有效的变量-例如来自post数组(假设您正在从表单传递变量)。类似于:

if(isset($_POST['requestedEmail'])){
$requestedEmail = $_POST['requestedEmail']}
// other code

$query = "SELECT email FROM db_name WHERE email='". $requestedEmail . "';
然后从返回的$行中获取电子邮件(假设您使用的是返回查询中的该变量)

$email = $Row['email'];
然后可以使用$email(不带引号,因为它是一个变量而不是字符串):

这一行:

$mail->AddAddress("$email", "John Doe");
应改为:

$mail->AddAddress($email, "John Doe");

在PHP中将变量作为参数传递时,您不会像传递字符串那样在变量周围使用引号。因此,在代码中,您不会传递变量$email,而是传递字符串“$email”。

我去掉了它。我只留下:$mail->AddReplyTo(“info@domain.co.uk“,”信息“;它说:“邮件无法发送。邮件程序错误:您必须提供至少一个收件人电子邮件地址。”请检查我的答案-您回答时我正在键入:您的assigning$电子邮件位于错误的位置。在表中,我使用:$行[电子邮件]显示访问者的电子邮件地址。我已编辑了我的原始代码(请参见上文-在我的问题中也替换了它),但仍然说,它无法发送电子邮件…仍然不确定我是否正确收到了此消息-您已经从您按下的按钮中获得了电子邮件地址-为什么需要再次查询数据库才能获得它?这就是我想要的:执行搜索>>在列出电子邮件地址的表中获取结果(每行一个)>>然后单击行末尾的按钮,系统将向该电子邮件地址发送一封电子邮件。或者,我不需要再次查询数据库?如果不需要,我如何才能发送此电子邮件?谢谢!这是显示电子邮件地址的行:echo$output='.$row[“email”]“;您只需检查您的值-
addAddress
如果向其提供无效内容,则将返回false。查看PHPMailer.on if($result){do stuff}提供的邮件列表示例可能会有所帮助结果永远不会启动这没什么区别-变量用双引号插入,所以它们是相同的,尽管引号是不必要的。
$mail->AddAddress("$email", "John Doe");
$mail->AddAddress($email, "John Doe");