2016-05-08 105 views
0

我試圖發送電子郵件的所有表格,改變了大門到465/587,已經檢查了不太安全的應用程序帳戶設置,已經檢查我的託管是PHP擴展是活躍的,所有這些「確定」,已經嘗試發送與Hotmail帳戶,以確保問題是在代碼中,已經交易雙引號單引號,已經檢查了密碼,以確保是正確的,我已經做了一切,仍不斷收到以下消息:發送郵件SMTP:被稱爲郵件()而不被連接GMAIL

Mail error: The following From address failed: [email protected] : Called Mail() without being connected

enviar.php

<?php 
$Nome  = $_POST["Nome"]; // Pega o valor do campo Nome 
$assunto  = $_POST["Assunto"]; // Pega o valor do campo Telefone 
$Email  = $_POST["Email"]; // Pega o valor do campo Email 
$Mensagem = $_POST["Mensagem"]; // Pega os valores do campo Mensagem 

// Variável que junta os valores acima e monta o corpo do email 

$Vai   = "Nome: $Nome\n\nE-mail: $Email\n\nAssunto: $assunto\n\nMensagem: $Mensagem\n"; 

require_once("phpmailer/class.phpmailer.php"); 

define('GUSER', '[email protected]'); // <-- Insira aqui o seu GMail 
define('GPWD', '****');  // <-- Insira aqui a senha do seu GMail 

function smtpmailer($para, $de, $de_nome, $assunto, $corpo) { 
    global $error; 
    $mail = new PHPMailer(); 
    $mail->IsSMTP();  // Ativar SMTP 
    $mail->SMTPDebug = 0;  // Debugar: 1 = erros e mensagens, 2 = mensagens apenas 
    $mail->SMTPAuth = true;  // Autenticação ativada 
    $mail->SMTPSecure = 'tls'; // SSL REQUERIDO pelo GMail 
    $mail->Host = 'smtp.gmail.com'; // SMTP utilizado 
    $mail->Port = 587;   // A porta 587 deverá estar aberta em seu servidor 
    $mail->Username = GUSER; 
    $mail->Password = GPWD; 
    $mail->SetFrom($de, $de_nome); 
    $mail->Subject = $assunto; 
    //$mail->Body = $corpo; 
    $mail->MsgHTML(true); 
    $mail->AddAddress($para); 
    if(!$mail->Send()) { 
     $error = 'Mail error: '.$mail->ErrorInfo; 
     return false; 
    } else { 
     $error = 'Mensagem enviada!'; 
     return true; 
    } 
} 

// Insira abaixo o email que irá receber a mensagem, o email que irá enviar (o mesmo da variável GUSER), 
//o nome do email que envia a mensagem, o Assunto da mensagem e por último a variável com o corpo do email. 

if (smtpmailer('[email protected]', '[email protected]', 'Nome do Enviador', 'Contato do Site', $Vai)) { 

    Header("location:http://www.pauloroberto.xyz"); // Redireciona para uma página de obrigado. 

} 
if (!empty($error)) echo $error; 
?> 

index.html

<!DOCTYPE html> 
<html> 
<head> 
<title>Email</title> 
<meta name="description" content=""> 
<meta charset="utf-8"> 
</head> 

<body> 

<form action="enviar.php" method="post"> 
    <label for="Nome">Nome:</label> 
    <input type="text" name="Nome" size="35" /> 

    <label for="Email">E-mail:</label> 
    <input type="text" name="Email" size="35" /> 

    <label for="Fone">Assunto:</label> 
    <input type="text" name="Fone" size="35" /> 

    <label for="Mensagem">Mensagem:</label> 
    <textarea name="Mensagem" rows="8" cols="40"></textarea> 

    <input type="submit" name="Enviar" value="Enviar" /> 
</form> 

</body> 
</html> 
+0

端口465是SSL和端口587是用於TLS當你改變了端口,你也改變TLS來ssl – RiggsFolly

+0

我改變了是嘗試了N個設置並且不成功。 –

回答

1

現在試試這個我嘗試並獲得成功

$mail = new PHPMailer; 
$mail->IsSMTP(); 
$mail->SMTPOptions = array(
    'ssl' => array(
     'verify_peer' => false, 
     'verify_peer_name' => false, 
     'allow_self_signed' => true 
    ) 
); 
$mail->SMTPDebug = 0; 
$mail->SMTPAuth = true; 
$mail->SMTPSecure = 'tsl'; tls 
$mail->Host = "hostname"; 
$mail->Port = 587; 
$mail->IsHTML(true); 
$mail->SetLanguage("tr", "phpmailer/language"); 
$mail->CharSet ="utf-8"; 
$mail->Username = GUSER; 
$mail->Password = GPWD; 
$mail->SetFrom($de, $de_nome); 
$mail->AddAddress($para); 
$mail->Subject = "You have Message From Site"; 
$mail->Body = $Vai; 
$mail->Send(); 
+0

郵件錯誤:您必須提供至少一個收件人電子郵件地址。 –

+0

我更新了答案,請檢查它 –