0

我读了很多关于这个问题,并没有真正得到明确的答案

我只是在家里有本地服务器,它有 xampp,sendmail 工作正常......我正在使用 xampp 附带的 sendmail 文件夹,一切都很好

  • 我取消了 sendmail 路径地址的注释...并输入了我的本地主机 smtp 信息,用户/通过一切正常...工作正常
  • 还有另一种选择

force_sender=test@domain.com

使用它时,它会发送电子邮件,我在我的普通电子邮件客户端中收到一封来自地址的电子邮件:test@domain.com ......这很好

问题是我真的想定义发件人姓名,比如来自 MAIL SENDER

类似于 FROM:“约翰”

尝试在 force_sender 位置使用引号,没有任何变化...我在我的 xampp(hmail 服务器)中存在此邮箱,我将设置放在那里以使用 FIRST NAME 和 LAST name,如 John Smith,但没有工作...一直都来自地址格式:test@domain.com

这也是类似的,但没有人能真正帮助我消除这个疑问并得到休息 - 然而

发件人地址不适用于 PHP 邮件标头

4

2 回答 2

0

如果要设置发件人姓名,则必须在标头中设置。尝试这个

$senderName="John";
$senderEmail= "test@domain.com";
$recipient = "recipient@domain.com";
$subject ="testmail";
$message="test message";


$headers = "From: " . $senderName . " <" . $senderEmail . ">";

$success = mail($recipient, $subject, $message, $headers );
于 2014-09-11T06:17:53.237 回答
0

php 中更好的方法是使用库phpmailer

发送电子邮件看起来像这样,您可以设置任何您想要的字段(当然,您并不总是需要像示例中那样多的字段)。我猜 $mail->FromName = "你的名字"; 就是你要找的。

<?php

require '/whereeveritis/PHPMailerAutoload.php';
$mail = new PHPMailer;

//Enable SMTP debugging. 
$mail->SMTPDebug = 3;                               
//Set PHPMailer to use SMTP.
$mail->isSMTP();            
//Set SMTP host name                          
$mail->Host = "smtp.gmail.com";
//Set this to true if SMTP host requires authentication to send email
$mail->SMTPAuth = true;                          
//Provide username and password     
$mail->Username = "youraddress@gmail.com";                 
$mail->Password = "yourpasswordinplaintextyeah";                           
//If SMTP requires TLS encryption then set it
$mail->SMTPSecure = "tls";                           
//Set TCP port to connect to 
$mail->Port = 587;                                   

$mail->From = "name@gmail.com";
$mail->FromName = "Your name";

$mail->addAddress("name@example.com", "Recepient Name");

$mail->isHTML(true);

$mail->Subject = "Whatever good subject you like to use";
$mail->Body = "Mail body in HTML";
$mail->AltBody = "plain text version";

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}
于 2016-09-30T15:48:48.467 回答