【问题标题】:GMX contact formGMX 联系表
【发布时间】:2015-05-02 05:38:06
【问题描述】:

我正在尝试在 phpMailer 的帮助下为我的主页创建一个简单的 SMTP 联系表单,但它不起作用。它应该将“名称、邮件、主题、消息”字段的信息转发到我的邮箱(在本例中为“名称、邮件、主题、消息”)。在我的 html 代码中,输入字段也被命名为“名称、邮件、主题、消息”。

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

<?
  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->用户名 = "test@gmx.com";
  • “但它不起作用” - 它怎么不起作用?您没有说明问题是什么。
  • 您的代码基于一个过时的示例,因此您可能也在使用旧版本的 PHPMailer。 Get the latest.

标签: php email phpmailer contact-form


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢!它现在工作正常:-) 但我还有一个问题。当我点击提交按钮时,我的联系表格没有被重置。你知道我该如何解决这个问题吗?这是我的联系表格的链接:k-urz.de/v8
  • 在您提交表单时使用的方法中添加document.getElementById("contactform").reset();
  • 这适用于重置联系人表单。谢谢 :) 但是现在我收到错误“消息正文为空”,尽管我在此字段中输入了文本。怎么了?
  • 您可能在发送之前重置表单。
  • 我在提交按钮的html部分使用了js函数:&lt;input class="submit three columns" type="submit" value="Submit" id="submit" onclick="resetform()"/&gt;如何延迟该函数的触发?
猜你喜欢
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
  • 2013-06-19
  • 2018-04-16
  • 2018-03-06
  • 2013-01-16
  • 2013-02-17
相关资源
最近更新 更多