Perché la posta non riesce in php?

Questo è il mio Codice :

<?php
//define the receiver of the email
$to = '[email protected]';
//define the subject of the email
$subject = 'Test email';
//define the message to be sent. 
$message = "Hello World!\n\nThis is my mail.";
//define the headers we want passed. 
$header = "From: [email protected]";
//send the email
$mail_sent = @mail( $to, $subject, $message);
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" 

echo $mail_sent ? "Mail sent" : "Mail failed";
?>

— restituisce mail non riuscita

Si prega di aiutare me

Rimuovere @ davanti al mail() funzione e dicci se eventuali errori/avvisi vengono visualizzati.
dove si trova la pagina web ospitata?
oltre che (SMTP)server della posta inviata? è quello configurato?

OriginaleL’autore Danny Feher | 2011-01-08

One Reply
  1. 10

    Ci sono diversi motivi per cui questo potrebbe non riuscire. L’ostacolo principale per trovare la causa è l’uso di controllo di errore dell’operatore (@) prima della chiamata alla funzione mail ().

    Altre possibili cause sono la mancanza di una valida Dal colpo di testa. Anche se si definisce uno in $variabile di intestazione, di non passare per la funzione mail (). E ‘ anche importante che l’intestazione è un indirizzo email valido nel dominio stai inviando l’email. Se non lo è, la maggior parte delle aziende di hosting ora rifiutare l’e-mail come spam. Potrebbe anche essere necessario per la fornitura di un quinto parametro per posta elettronica(), che in genere consiste in una stringa composta da -f seguita da un indirizzo email valido nel dominio corrente.

    Ancora un’altra possibilità è che si sta tentando di inviare questo dal proprio computer. La funzione mail() non supporta l’autenticazione SMTP, quindi la maggior parte dei server di posta si rifiuta di posta elettronica provenienti da fonti che non lo riconoscono.

    E solo per aggiungere a tutti i vostri problemi, a capo, in messaggi di posta elettronica deve essere una combinazione di ritorno, seguito da un ritorno a capo. In PHP, questo è “\r\n”, non “\n\n”.

    Supponendo che si sta utilizzando un server remoto per inviare la mail, il codice dovrebbe essere simile a questo:

    <?php
    //define the receiver of the email
    $to = '[email protected]';
    //define the subject of the email
    $subject = 'Test email';
    //define the message to be sent. 
    $message = "Hello World!\r\nThis is my mail.";
    //define the headers we want passed. 
    $header = "From: [email protected]"; //must be a genuine address
    //send the email
    $mail_sent = mail($to, $subject, $message, $header);
    //if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" 
    
    echo $mail_sent ? "Mail sent" : "Mail failed";
    ?>
    Grazie 🙂 ho dovuto configurare l’SMTP

    OriginaleL’autore David Powers

Lascia un commento