GMX 联系表

GMX contact form

我试图在 phpMailer 的帮助下为我的主页创建一个简单的 SMTP 联系表单,但它不起作用。它应该将字段 "name, mail, subject, message" 的信息转发到我的邮箱(在本例中为 "name, mail, subject, message")。输入字段在我的 html 代码中也被命名为 "name, mail, subject, message"。

谁能告诉我我做错了什么?感谢您的任何建议。

<?
  require('class.phpmailer.php');    
  require('class.smtp.php');

    $mail = new PHPMailer(); 
            $mail->CharSet  =  "utf-8";
            $mail->IsSMTP();
            $mail->Host       = 'mail.gmx.de';
            $mail->SMTPDebug  = 0;                     
            $mail->SMTPAuth   = true;           
            $mail->SMTPSecure = "ssl";                 
            $mail->Port       = 465;                     
            $mail->Mailer   = "ssl"; 
            $mail->Password = "****"; 
            $mail->Username = "test@gmx.com"; 
            $mail->SMTPAuth  =  "true"; 

            $mail->FromName = $_POST['name']; 

            $mail->AddAddress = $_POST['mail'];  

            $mail->Subject = $_POST['subject'];  

            $mail->Body = $_POST['message']; 

            if(!$mail->Send())   
            {  
            echo 'E-Mail not send.';  
            echo 'Mailer error: ' . $mail->ErrorInfo;  
            }   
            else   
            {  
            echo "<h5>" . 'Thanks for your message' . "</h5>";  
            }  
?>

错误消息说您缺少收件人地址,您必须使用以下方式添加一个:

$mail->AddAddress("youemail@youremail.com", "Your Name");
//Your Name is optional. so alternatively you could do:
//$mail->AddAddress("youemail@youremail.com");

您引用的代码部分 $mail->Username = "test@gmx.com"; 只是设置用于通过 SMTP 服务器进行身份验证的用户名,而不是收件人地址。