2016-05-31 67 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。

我想知道你在哪裏得到這個示例代碼,所以我可以讓作者刪除或更新它;破碎的,陳舊的例子只是浪費了每個人的時間。

相關問題