You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHPMailer中设置发件人名称(from name)?

解决PHPMailer自定义发件人名称的问题

嘿,这问题很好解决!你现在的核心问题是**SetFrom方法的参数用错了**,导致收件人看到的发件人是邮箱ID而不是你想要的自定义名称。

问题原因

PHPMailer的SetFrom()方法需要两个参数:

  • 第一个参数:发件人的邮箱地址(必须和你SMTP认证的邮箱一致,不然可能被邮件服务商拦截)
  • 第二个参数:你想要显示的自定义发件人名称(可选,但这正是你需要的)

你之前只传了名称"Kreatz.in",没传邮箱地址,所以PHPMailer自动使用了$mail->Username作为发件人地址,名称就默认显示成邮箱ID了。

修改后的完整代码

<?php
$mailto = $_POST['mail_to'];
$mailSub = $_POST['mail_sub'];
$mailMsg = $_POST['mail_msg'];

require 'PHPMailer-master/PHPMailerAutoload.php';
$mail = new PHPMailer();

$mail->IsSmtp();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);

$mail->Username = "dkdev006@gmail.com";
$mail->Password = "password";
// 重点修改这里:第一个参数是邮箱,第二个是自定义名称
$mail->SetFrom("dkdev006@gmail.com", "Kreatz.in");

$mail->Subject = $mailSub;
$mail->Body = $mailMsg;
$mail->AddAddress($mailto);

if(!$mail->Send()) {
    echo "Mail Not Sent";
} else {
    echo "Mail Sent";
}
?>

额外提示

如果需要设置单独的回复地址(和发件人地址不同),可以添加这一行:

$mail->AddReplyTo("your-reply-email@example.com", "Your Reply Name");

内容的提问来源于stack exchange,提问作者Deepak dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:50:50