2012-11-07 10 views
5

Sto cercando di inviare una e-mail in modo seguente -classe PHPMailer ritorna vero, ma e-mail non viene recapitato

from : [email protected] 
reply-to : [email protected] 
to : [email protected] 
cc : [email protected] 

mia email è sempre consegnati all'indirizzo indicato nella CC (se sostituisco le e-mail da e cc , quindi l'e-mail viene inviata all'indirizzo indicato in)

Per qualche motivo, la posta elettronica non viene recapitata all'indirizzo [email protected] Se invio l'e-mail manualmente a questo indirizzo utilizzando Outlook o Gmail, l'e-mail viene effettivamente consegnata. Come posso eseguire il debug di questo problema?

Ho controllato anche le directory spam/spazzatura, nessuna email laggiù. Ho provato a utilizzare la funzione php mail() così come la classe phpmailer. Entrambi restituiscono VERO. Quale potrebbe essere la ragione? Per favore aiuto.

$mail->From = "[email protected]"; 
$mail->AddReplyTo("[email protected]"); 
$mail->AddAddress("[email protected]"); 
$mail->AddCC("[email protected]"); 
$mail->Subject = $subject; 
$mail->Body = $message; 

if(! $mail->Send()) { 
    echo "Message was not sent"; 
    echo "Mailer Error: " . $mail->ErrorInfo; 
    exit; 
} 
+1

Si prega di fornire il codice che si è provato – Elby

+1

AFAIK, 'mail()' di PHP non ha un solido meccanismo di debug. Quindi non puoi sapere con certezza dove si trova il problema. – asprin

+0

Sì. Ecco perché, ho usato la classe phpmailer. Ritorna anche vero. Non genera alcun errore. Ho aggiunto il codice alla domanda sopra. –

risposta

2
Try to set cofigurations beffore send (Gmail config): 



    $mail = new Mailer(); 
    $mail->SMTPDebug = true; 
    $mail->SMTPAuth = true; 
    $mail->CharSet = 'utf-8'; 
    $mail->SMTPSecure = 'ssl'; 
    $mail->Host = 'smtp.gmail.com'; 
    $mail->Port = '465'; 
    $mail->Username = 'your login here'; 
    $mail->Password = 'your password here'; 
    $mail->Mailer = 'smtp'; 
    $mail->From = 'form mail address'; 
    $mail->FromName = 'from name'; 
    $mail->Sender = 'form mail'; 
    $mail->Priority = 3; 

    $mail->AddAddress('mail', 'admin name'); 
    $mail->AddReplyTo('replay to', 'admin name'); 
    $mail->Subject = 'subject'; 
    $mail->Body = 'some HTML message here'; 
    $mail->IsHTML(true); 
    if(!$this->Send()) { 
     print_r('error: '. $mail->ErrorInfo); // Show errors 
} 
    $mail->ClearAddresses(); 
    $mail->ClearAttachments(); 
+0

Cosa c'è di tutte le costanti? Puoi semplicemente assegnare i valori direttamente, sai? Non c'è bisogno delle costanti. Inoltre, '$ mail' non è un oggetto quando si tenta di assegnare' $ mail-> IsSMTP(); '. –

+0

Sory. Aggiungi alcune modifiche, ora senza costanti – RDK

0

verifica che il server sia ad alta voce per inviare messaggi di posta elettronica lo stesso è successo a me nel mio caso ho usato Plesk e per qualche motivo non è stato in grado di inviare e-mail fino a quando ricevo e-mail cambio questo configurazione e controllo funzionante è anche possibile utilizzare send mail o qmail se è qmail devi dirlo a php mailer

0

Questo può accadere anche se stai inviando email da un indirizzo email, ma l'autenticazione con un'altra (o dominio)

Imposta $ mail.setFrom() sulla stessa email per cui si sta effettuando l'autenticazione .

Problemi correlati