2016-05-31 76 views
0

编辑:不知何故代码只适用于网络服务器,而不是本地主机,所以有你的“修复”。PHPMailer在一个页面上工作,但不能在类似的工作

所以,我的PHP代码工作,因为它应该是这样的:

require 'PHPMailer/PHPMailerAutoload.php'; 
    $nome = $_POST["nome"]; 
    $subject = $_POST["subject"]; 
    $message = $_POST["message"]; 
    $email = $_POST["email"]; 
    $contacto = $_POST["contacto"]; 
    $body = "<p>Mail recebido de: </p>" . $nome . "<p>Email:</p>" . $email . "<p> Contacto:</p>" . $contacto . "<p>Mensagem:</p>" . $message ; 
    $mail = new PHPMailer(); 
    $mail->CharSet = "text/html; charset=UTF-8;"; 
    $mail->SMTPDebug = 0; // debugging: 1 = errors and messages, 2 = messages only 
    $mail->CharSet = 'UTF-8'; 
    $mail->SMTPAuth = true; 
    $mail->SMTPSecure = 'ssl'; 
    $mail->Host = "smtp.gmail.com"; 
    $mail->Port = 587; 
    $mail->Username = "the email"; 
    $mail->Password = the password; 
    $mail->SetFrom('the email', 'Organizer'); 
    $mail->Subject = "[ORÇAMENTO] " . $subject; 
    $mail->Body = $body; 
    $mail->IsHTML(true); 
    $mail->AddAddress("the email"); 
    if(!$mail->Send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    $sucesso = 'Mensagem enviada com sucesso!'; 
} 

这第一个脚本发送电子邮件给自己,但即使没有在这里($ MAIL-工作>发送()= 1 ,我仍然没有收到电子邮件):

require '../PHPMailer/PHPMailerAutoload.php'; 
      $body = "<p>Car(a) " . ${'user' . $i} . ",</p> <p> Foi lhe associado(a) uma nova ocorrência. Consulte-a em http://www.organizer.com.pt . </p>"; 
      $mail = new PHPMailer(); 
      $mail->CharSet = "text/html; charset=UTF-8;"; 
      $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only 
      $mail->CharSet = 'UTF-8'; 
      $mail->SMTPAuth = true; 
      $mail->SMTPSecure = 'ssl'; 
      $mail->Host = "smtp.gmail.com"; 
      $mail->Port = 587; 
      $mail->Username = "the email"; 
      $mail->Password = the password; 
      $mail->SetFrom('the email', 'Organizer'); 
      $mail->Subject = "Nova Ocorrência"; 
      $mail->Body = $body; 
      $mail->IsHTML(true); 
      $mail->AddAddress($email); 
      if(!$mail->Send()) { 
      echo "Mailer Error: " . $mail->ErrorInfo; 
      } else { 
      $sucesso = 'Mensagem enviada com sucesso!'; 
      } 

我已经测试了所有我从数据库中获取等变量,他们是正确的,我只是不接收电子邮件出于某种原因。任何人都可以帮忙

P.S .:对不起,这是用葡萄牙语,我认为代码仍然是完全可以理解的。

+0

任何错误信息? –

+0

nope,据说邮件被发送,这就是为什么我不明白。 – Manuel

+0

检入脚本2 ...是否“需要”../ PHPMailer/PHPMailerAutoload.php';“或“需要'PHPMailer/PHPMailerAutoload.php';” –

回答

0

“不起作用”不是一个有用的问题描述。就这样而言,细节就是一切。

它不会帮助您将代码基于过时的&不正确的示例,并且没有阅读文档,并且我怀疑您也使用旧版本的PHPMailer,因为它会为您提供链接如果是最近的版本,请与相关文档联系。所以在此之前,get the latest versionread the docs

至于具体问题:SMTPSecure = 'ssl'Port = 587将无法​​正常工作。端口587用于SMTP + STARTTLS,不是隐式SSL,因此设置为SMTPSecure = 'tls'

这是错误的:

$mail->CharSet = "text/html; charset=UTF-8;"; 

您的其他脚本做正确的事:

$mail->CharSet = 'UTF-8'; 

如果您遇到什么麻烦,有一个调试选项,启用它!

$mail->SMTPDebug = 2; 

如果您有初始连接问题,请将其增加到3。

我想知道你在哪里得到这个示例代码,所以我可以让作者删除或更新它;破碎的,陈旧的例子只是浪费了每个人的时间。

相关问题