web-dev-qa-db-fra.com

Modifiez le nom de l'expéditeur du courrier php au lieu de [email protected]

J'essaie d'envoyer des e-mails depuis mon php:

$to = '[email protected]';
    $email_from = "[email protected]";

    $full_name = 'Suraj Hazarika';
    $from_mail = $full_name.'<'.$email_from.'>';



    $subject = "testing sender name";
    $message = "";
    $message .= '
            <p><strong>This is only a test . Please do not reply.</strong><br />
    ';
    $from = $from_mail;

    $headers = "" .
               "Reply-To:" . $from . "\r\n" .
               "X-Mailer: PHP/" . phpversion();
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";        
    mail($to,$subject,$message,$headers);

Je suis le tutoriel PHP E-mail Form Sender Name lieu de E-mail? mais je reçois toujours les e-mails avec le nom de l'expéditeur avec le nom d'hôte.

     From                              Date             Subject 
[email protected]  Fri, 11:24 pm       testing sender name
[email protected]  Fri, 11:24 pm       testing sender name
20
Suraj Hazarika

Vous utilisez uniquement $from Dans votre en-tête Reply-To. Si vous voulez qu'il soit dans l'en-tête From, vous devez le définir dans l'en-tête From.

Mettez quelque chose comme ça avant votre commande mail():

$headers .= 'From: ' . $from . "\r\n";
21
Trott

Je suis venu à cette question à la recherche de quelque chose de différent mais avec des mots similaires, alors voici comment faire ce que je cherchais:

Dans l'en-tête from, placez l'adresse entre crochets et le "nom de l'expéditeur" à l'extérieur.

from: Don Draper <[email protected]>\n

Je voulais que la boîte de réception dise Don Draper au lieu de don.draper et voilà comment procéder.

18
Ben

Vous pouvez également essayer d'ajouter l'adresse From à l'enveloppe du courrier en utilisant le cinquième paramètre de la fonction mail() de PHP:

mail($to_mail, $subject, $message, $headers, "-f$from_email");

Référence ici .

Référence concernant les en-têtes de courrier et les enveloppes ici

Notez que certaines configurations de serveur peuvent interdire cela ou afficher un avertissement, selon leur configuration et/ou la configuration de l'agent de transfert de messagerie. Cette réponse parle de la mise à jour des "utilisateurs de confiance" de sendmail à cet égard.

5
indextwo

Ajouter cette ligne avant la ligne d'en-tête

$headers .= "From: Your Name <[email protected]> \r\n";

Donc, le code sera

$headers = "";
$headers .= "From: WIFI Metropolis <[email protected]> \r\n";
$headers .= "Reply-To:" . $from . "\r\n" ."X-Mailer: PHP/" . phpversion();
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";        
mail($to,$subject,$message,$headers);
3
Ahmed Al Bermawy

Ajoutez simplement l'en-tête From. Quelque chose comme ça.

$headers .= "From: [email protected]";
1
Ben

Essayez d'ajouter From: à l'en-tête

$headers = "" .
           "Reply-To:" . $from . "\r\n" .
           "From:" . $from . "\r\n" .
           "X-Mailer: PHP/" . phpversion();
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";  

Certains MTA peuvent modifier/ignorer cette définition pour éviter le SPAM et remplacer avec l'utilisateur de SMTP configuré dans PHP.ini

0
Paulo H.