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

如何在PHPMailer发送的联系邮件中获取并添加用户IP地址?

在PHPMailer邮件中添加用户IP地址

很容易实现这个需求,只需要两步:获取用户的IP地址,然后把它插入到邮件的内容里即可。

1. 获取用户IP地址

用户的IP地址可以通过$_SERVER超全局变量获取,不过为了兼容代理服务器的情况,建议用下面的逻辑来获取最准确的IP:

// 获取用户真实IP地址
$userIp = $_SERVER['REMOTE_ADDR'];
// 处理代理场景下的IP获取
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $userIp = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $userIp = $_SERVER['HTTP_CLIENT_IP'];
}

2. 修改邮件内容,插入IP地址

把上面获取到的$userIp变量添加到MsgHTML的内容里,比如新增一行专门显示IP地址。

修改后的完整代码如下:

<?php 
require "class.phpmailer.php"; 
$mail=new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPDebug = 1; 
$mail->SMTPAuth = true; 
$mail->Host = "domain.mail.com"; 
$mail->Port = 000; 
$mail->Username = 'username@gmail.com'; 
$mail->Password = 'pass'; 

// 获取用户真实IP地址
$userIp = $_SERVER['REMOTE_ADDR'];
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $userIp = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $userIp = $_SERVER['HTTP_CLIENT_IP'];
}

$mail->SetFrom($mail->Username, $_POST['name']); 
$mail->AddAddress('username@gmail.com', 'username'); 
$mail->CharSet = 'UTF-8'; 
$mail->Subject = $_POST["topic"]; 
// 插入IP地址到邮件内容
$mail->MsgHTML('Name: '.$_POST["name"].'<br/> Subject: '.$_POST["topic"].'<br/> E-Mail: '.$_POST["email"].'<br/> IP Address: '.$userIp.'<br/> Message: '.$_POST["message"].'<br/>'); 

if($mail->Send()) { 
    echo "<script>alert('Message successfully sent.');</script>"; 
    header ("Refresh:0; url=index.html"); 
}else { 
    echo $mail->ErrorInfo; 
} 
?>

小提醒

直接使用用户提交的$_POST数据存在安全风险(比如XSS攻击),建议对$_POST['name']、$_POST['email']等参数做过滤处理,比如使用htmlspecialchars()函数转义特殊字符:

$safeName = htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8');
$safeEmail = htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8');
$safeTopic = htmlspecialchars($_POST['topic'], ENT_QUOTES, 'UTF-8');
$safeMessage = htmlspecialchars($_POST['message'], ENT_QUOTES, 'UTF-8');

然后在邮件内容里使用这些经过转义的变量,这样能提升代码的安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:35:26