这必须是一个简单的,但我一直在搜索,似乎与我的问题没什么关系:或者我无法为其他人充分解释建议。
我收到错误“您必须提供至少一个收件人电子邮件地址。无法发送邮件。”
如果我在“AddAddress”字段中输入特定的电子邮件地址,则会发送消息。我想将一封电子邮件发送给用户,该用户已将其表单作为自动电子邮件回复提交,感谢用户注册...因此($ _POST ['email'])位于“AddAddress”字段中。这适用于Mail()php函数。为什么不PHP PHP?我错过了什么?
这是我的代码,其中包含敏感位(相关位 - 我认为 - 以粗体显示):
<?php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name=""; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Get values from form
$email=$_POST['email'];
// Insert data into mysql
$sql="INSERT INTO $tbl_name(email,) VALUES('$email',)";
$result=mysql_query($sql);
// if successfully insert data into database, displays message "Successful".
if($result){
}
else {
echo "ERROR";
}
?>
<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "localhost"; // specify main and backup server
$mail->SMTPAuth = false; // turn on SMTP authentication
$mail->Username = ""; // SMTP username
$mail->Password = ""; // SMTP password
$mail->From = "";
$mail->FromName = "";
**$mail->AddAddress = ($_POST['email']);**
$mail->WordWrap = 50; // set word wrap to 50 characters
$mail->IsHTML(true); // set email format to HTML
$mail->Subject = "";
$mail->Body = "";
$mail->AltBody = "";
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
?>
<?php
// close connection
mysql_close();
?>
非常感谢您的建议。希望这对其他人也有帮助......
版
答案 0 :(得分:0)
简单的一个......只需改变这一行
$mail->AddAddress = ($_POST['email']);
到此:
$mail->AddAddress($_POST['email']);
因为它是方法,而不是变量,在类上! :)
您可以在PHPMailer GitHub
上使用一些很好的示例