PHPMailer Ändern der Absender-name
Ich habe Probleme bei der Einstellung der name, der geschickt mit mailings gesendet mit der PHPMailer Klasse.
Ich geschrieben habe die folgende Funktion, so dass es kann verwendet werden, in ähnlicher Weise wie die der php-bulit in mail()
Funktion.
function pmail($to, $subject, $message, $headers = "", $attachments = "")
{
date_default_timezone_set('Europe/London');
require_once($_SERVER['DOCUMENT_ROOT']."/lib/inc/class.phpmailer.php");
//include($_SERVER['DOCUMENT_ROOT']."/lib/inc/class.smtp.php"); //optional, gets called from within class.phpmailer.php if not already loaded
$defaultEmail = "[email protected]";
$defaultEmailName = "Web Mailer";
$mail = new PHPMailer();
$mail->IsSMTP(); //telling the class to use SMTP
$mail->Host = "mail.example.com"; //SMTP server
$mail->SMTPDebug = false; //enables SMTP debug information (for testing, 1 = errors and messages, 2 = messages only, false = off)
$mail->SMTPAuth = true; //enable SMTP authentication
//$mail->SMTPSecure = "tls"; //sets the prefix to the servier
$mail->Host = "mail.example.com"; //sets the SMTP server
$mail->Port = 25; //set the SMTP port for the GMAIL server
$mail->Username = "###"; //SMTP account username
$mail->Password = "###"; //SMTP account password
$mail->SetFrom( ($headers['fromEmail'] != "" ? $headers['fromEmail'] : $defaultEmail), ($headers['fromName'] != "" ? $headers['fromName'] : $defaultEmailName) );
$mail->AddReplyTo( ($headers['replyToEmail'] != "" ? $headers['replyToEmail'] : $defaultEmail), ($headers['replyToName'] != "" ? $headers['replyToName'] : $defaultEmailName) );
$mail->AddAddress($to);
$mail->Subject = $subject;
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //optional, comment out and test
$mail->MsgHTML($message);
foreach($attachments as $attachment) {
//$mail->AddAttachment("images/phpmailer.gif"); //attachment example
$mail->AddAttachment($attachment);
}
if(!$mail->Send()) {
//echo "Mailer Error: ".$mail->ErrorInfo;
return false;
} else {
//echo "Message sent!";
return true;
}
}
Beim testen mit so etwas wie, so;
pmail("[email protected]", "test email", "test message here");
Alles funktioniert einwandfrei, die " von " - Adresse zeigt sich als [email protected]
im Header, wie erwartet, jedoch ist der name, den ich sehe, in den Posteingang des Empfängers ist nicht Web Mailer
seinen Standard-account im Zusammenhang mit der Benutzer, deren Anmeldeinformationen werden verwendet, um die E-Mail senden.
In den Headern, die vom Namen zeigen, nicht als Web-Mailer, aber seinen Posteingang, wo ich es sehen will
Können wir nicht einrichten, mehrere Benutzer-accounts auf unser system, uns zu erlauben, einfach eine neue mit den gewünschten Namen und E-Mail, deshalb haben wir es zu senden, über ein bestehendes Benutzer-Konto.
In diesem Fall meins, und E-Mails geschickt bekommen mit meinem Namen angebracht, aber wir wollen, dass der name zu zeigen, wie Web-Mailer.
Ist das überhaupt möglich?
InformationsquelleAutor Novocaine | 2013-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich einmal verwendet, dieser php-code und es funktionierte gut: (es angezeigt, was unten, nicht meine gmail-Zugangsdaten)
.
.
.
Vielleicht hilft es dir.
BEARBEITEN:
Ich würde versuchen, ändern Sie Ihre Linie mit SetFrom:
OK, ich verstehe. Eine weitere Sache, obwohl, tun Sie wirklich brauchen, dass ternären operator gibt es? Wenn Sie möchten, dass der name angezeigt werden "Web-Mailer" können Sie nur zuweisen, es direkt?
Nein, ich brauche nicht den ternären operator rechts jetzt, aber es könnte einige Verwendung für Sie in der zukünftigen Entwicklung (mehrere verschiedene domain-websites, die unterschiedliche E-Mail-Adressen), die ist, warum ich habe es umgesetzt wie.
OK, aber ich würde Ihnen empfehlen, es zu ändern, nur um zu überprüfen, ob es ist nicht so, dass die Linie das Problem verursacht. Es sei denn, Sie sind 100% sicher, das es nicht..
Ich war mir ziemlich sicher, es war nicht ein Problem, aber ich wollte es trotzdem versuchen. Leider keine änderung.
InformationsquelleAutor JanT
Stellt sich heraus, meine Funktion funktioniert wie vorgesehen.
Da wurde ich empfangen von E-Mails von diesem system auf interne Adressen, die Sie alle automatisch hatte mich in Ihrem Adressbuch, also als Adresse verwendet zum versenden der E-Mails war im Zusammenhang mit meiner persönlichen Adresse, die Sie sahen, mein name anstelle von "Web-Mailer".
Beim testen mit einer externen E-Mail-Konto der Absender-name korrekt aufgelistet ist.
ärgerlich, nicht wahr? Ich Verschwendete so viel Zeit auf dieser.
ja @Novocain, aber du hast mich gerettet, meine Zeit hier. 😉
InformationsquelleAutor Novocaine
Wenn Sie verwenden die PHP-Mailer-API von GitHub verwenden, können Sie diese Option, um dem Absender Name:
InformationsquelleAutor Jithu Wilson C
Können Sie in Ihr mail.php
InformationsquelleAutor Manoj