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

使用PHPMailer+Gmail SMTP发件时,发件人邮箱显示异常求助

问题:Gmail SMTP发送邮件时发件人邮箱被替换的问题

我用PHPMailer实现联系表单的邮件发送功能,通过Gmail SMTP可成功发送邮件,但收件时仅显示我的Gmail邮箱作为发件人地址,发件人名称正确,无法获取实际提交表单用户的邮箱地址。

我的代码如下:

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP; 
require 'vendor/autoload.php';
$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPDebug = 1;
$mail->SMTPSecure = 'ssl';   
$mail->Host       = 'smtp.gmail.com';    
$mail->Port       = '465';
$mail->SMTPAuth   = true;
$mail->Username   = 'myemail@gmail.com';
$mail->Password   = 'mypassword';
$mail->CharSet    = 'UTF-8'; 

$mail->setFrom($your_email, $your_name);
$mail->addAddress('myemail@gmail.com');
$mail->Subject = $subject;
$mail->Body = $content;             

if($mail->send()) {
    $emailSent = true;
} else {
    echo "Your message couldn't be sent. Please try again later.";
}  

其中$your_email是表单输入的用户邮箱,已确认值为实际发件人的邮箱地址。使用自有服务器而非Gmail SMTP时,能正常显示发件人信息,因此怀疑当前代码存在问题。

我尝试移除$mail->isSMTP();语句后,发件人邮箱和名称均能正常显示,想问:不使用$mail->isSMTP()是否存在问题?如何正确解决该异常?


解答

关于移除$mail->isSMTP()的问题

移除该语句后,PHPMailer会默认使用服务器的mail()函数发送邮件,而非Gmail SMTP。这种方式虽能显示用户邮箱,但存在明显弊端:

  • 邮件送达率低:多数邮件服务商易将mail()发送的邮件标记为垃圾邮件
  • 缺乏身份验证:无SMTP认证的邮件更容易被拦截
  • 依赖服务器配置:若服务器未配置好邮件服务,邮件可能无法发送

正确解决Gmail SMTP发件人显示问题的方法

Gmail SMTP会强制替换发件人邮箱为你的Gmail账号,这是其安全策略,防止伪造发件人。要合理展示用户邮箱信息,可采用以下两种方式:

1. 设置回复地址(推荐方案)

将用户邮箱设为回复地址,这样你回复邮件时会自动发送到用户邮箱;同时保留你的Gmail账号作为发件人,并在邮件内容中明确标注用户的邮箱和信息:

// 用你的Gmail账号作为发件人
$mail->setFrom('myemail@gmail.com', '你的网站名称');
// 添加用户邮箱为回复地址
$mail->addReplyTo($your_email, $your_name);
// 在邮件内容里补充用户的联系方式
$mail->Body = "用户邮箱:{$your_email}\n用户姓名:{$your_name}\n\n{$content}";

2. 使用Gmail别名功能(仅适用于固定发件人场景)

若想让发件人直接显示用户邮箱,需先在Gmail后台添加该邮箱为别名并完成所有权验证。验证通过后,可在PHPMailer中使用该别名作为发件人,但此方式不适合联系表单(用户邮箱是随机的),仅适用于你提前验证过的固定邮箱地址。

另外注意:Gmail目前要求开启两步验证的账号使用应用专用密码,不能直接使用账号密码,否则可能触发安全拦截导致邮件发送失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:24:32