【问题标题】:Contact Form Using SMTP使用 SMTP 的联系表
【发布时间】:2015-04-21 11:35:01
【问题描述】:

如果我不使用 smtp,我有一个简单的联系表格。我尝试添加 smtp 以与 mandrill 一起使用,但它不起作用。电子邮件不会通过山魈。

即使我启用了 '$mail->SMTPDebug = 1;' 在发送后我也没有看到任何错误我已经在本地和实时服务器环境中进行了尝试。

<?php
require_once('../mail/class.phpmailer.php');

$emailaddress = "name@domain.com"; 

// Check for empty fields
if(empty($_POST['name'])        ||
   empty($_POST['email'])       ||
   empty($_POST['phone'])       ||
   empty($_POST['message'])     ||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
    echo "No arguments Provided!";
    return false;
   }

$name = $_POST['name'];
$email_address = $_POST['email'];
$phone = $_POST['phone'];
$ip = $_SERVER['REMOTE_ADDR'];
$message = $_POST['message'];


$subject = "Contact Form: $name";
$body = "You have received a new message from website.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nIP Address: $ip\n\nMessage:\n$message";

$mail             = new PHPMailer();
$mail->IsSMTP(); 
$mail->Host       = "smtp.mandrillapp.com"; 
//$mail->SMTPDebug  = 1;                     
$mail->SMTPAuth   = true;                 
$mail->Host       = "smtp.mandrillapp.com"; 
$mail->Port       = 587;                    
$mail->Username   = "username"; 
$mail->Password   = "password";        

$mail->CharSet  = 'UTF-8';  
$mail->SetFrom($email_address);
$mail->AddReplyTo($email_address);
$mail->Subject    = "Contact Form: ".$_POST['name']." ";
$mail->MsgHTML($body);

$mail->AddAddress($emailaddress);
$mail->Send();

?>

【问题讨论】:

  • 尝试将 $mail->SMTPDebug 设置为 2,并取消注释此行。然后,发布它产生的调试信息,这里的人将能够提供帮助。
  • 无论设置为 1 还是 2 都不会产生任何错误。
  • 从运行脚本的服务器,尝试使用 telnet 连接到端口 587 上的 smtp.mandrillapp.com。它可以连接吗?

标签: email smtp contact-form


【解决方案1】:

我想通了。我还需要包含“class.stmp.php”文件。不一定要调用,但需要和 'class.phpmailer.php' 在同一个文件夹中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-16
    • 2017-02-03
    • 1970-01-01
    • 2014-01-23
    • 2018-03-05
    • 2014-04-27
    • 2014-08-23
    • 2013-10-06
    相关资源
    最近更新 更多