0

这必须是一个简单的问题,但我一直在搜索,似乎没有什么与我的问题相关:或者我无法充分解释其他人的建议。

我收到错误消息“您必须提供至少一个收件人电子邮件地址。无法发送邮件。”

如果我在“AddAddress”字段中输入特定的电子邮件地址,则会发送消息。我希望将一封电子邮件发送给已提交表单的用户作为自动电子邮件回复,感谢用户注册......因此“地址”字段中的 ($_POST['email'])。这适用于 Mail() php 函数。为什么不是 PHP MAiler?我错过了什么?

这是我删除敏感位的代码(相关位 - 我认为 - 粗体):

        <?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();
?>

非常感谢您的建议。希望这对其他人也有帮助...

埃德

4

1 回答 1

0

简单的...只需更改此行

$mail->AddAddress = ($_POST['email']);

对此:

$mail->AddAddress($_POST['email']);

因为它是类上的方法,而不是变量!:)

您可以在PHPMailer GitHub 上使用一些很好的示例

于 2013-05-05T14:12:55.030 回答