Lorsque j'utilise wp_mail( $to, $subject, $message, $headers )
(avec les valeurs en place, bien sûr), l'e-mail est envoyé avec un nom d'origine et un e-mail qui n'est défini nulle part (ni même dans les paramètres PHP ou Apache). Cependant, utiliser mail( $to, $subject, $message, $headers )
fonctionne plutôt bien. Que pourrait-il se passer avec wp_mail()
pour causer cela?
Bonjour @helenyhou:
Vous pouvez définir l'en-tête, mais pas avec un paramètre. WordPress utilise "hooks" et les hooks dont vous avez besoin sont les hooks 'wp_mail_from'
et 'wp_mail_from_name'
.
Voici les points d'ancrage que vous pouvez ajouter au fichier functions.php
de votre thème pour modifier l'en-tête "From:"
lors de l'utilisation de wp_mail()
à l'adresse électronique Helen Hou-Sandi <[email protected]>
:
add_filter('wp_mail_from','yoursite_wp_mail_from');
function yoursite_wp_mail_from($content_type) {
return '[email protected]';
}
add_filter('wp_mail_from_name','yoursite_wp_mail_from_name');
function yoursite_wp_mail_from_name($name) {
return 'Helen Hou-Sandi';
}
Eh bien, si vous utilisez le format From: "Your Name" <[email protected]>\r\n
dans vos en-têtes, vous ne devriez pas avoir de problème (sauf si vous avez installé un plugin qui remplace la fonction wp_mail).
Cependant, comme l'a dit Mike, vous pouvez filtrer les valeurs ultimes avec ces filtres, ou simplement installer ce plugin:
Cela vous donnera un paramètre d’options pour déterminer quel nom et quel email utiliser dans wp_mail.
C'est un peu un hack, mais vous pouvez également utiliser la balise d'en-tête Reply To
:
$headers = 'Reply-To: "Aaren A. Aarenson" <[email protected]>';
Malheureusement, ceci ajoute l'adresse de courriel à la liste De, et répondre signifie que vous devrez supprimer manuellement l'adresse configurée dans le filtre wp_mail_from
.
Désolé de revivre une vieille question, mais ne vaut-il pas mieux définir via les en-têtes comme ceci:
$subject = "MyPlugin: Alert (".get_bloginfo('wpurl').")";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=".get_bloginfo('charset')."" . "\r\n";
$headers .= "From: MyPlugin <".$this->settings['from_address'].">" . "\r\n";
wp_mail($this->settings['notify_address'], $subject, $alertMessage, $headers);
De cette façon, vous n’aurez plus à vous soucier d’utiliser un filtre puis à supprimer après wp_mail ().
J'ai eu le même problème. Pour moi, il est apparu que le fournisseur d'hébergement (BlueHost) empêchait de changer le champ from. Ici, ils l'expliquent https://my.bluehost.com/cgi/help/206 .
J'ai résolu le problème en ajoutant l'e-mail aux boîtes aux lettres cPanel, comme ils le disent.