隐藏或替换电子邮件地址 mailto:Laravel
Posted
技术标签:
【中文标题】隐藏或替换电子邮件地址 mailto:Laravel【英文标题】:Hide or Replace email address mailto: Laravel 【发布时间】:2022-01-17 17:02:48 【问题描述】:例如,我正在使用此 php 代码从数据库中获取用户电子邮件地址并输出为 l*******@g***.com。这可行,但电子邮件试图作为文字地址发送到该地址,并且总是返回错误。“l*******@g***.com”似乎不是有效的电子邮件地址。验证地址并重试。
是否有其他方法可以向发件人隐藏电子邮件地址。或者我可以修改这个代码,让它只显示这样,但真实的电子邮件地址仍然存在?
只需要发件人能够发送电子邮件,但地址对他们隐藏。
谢谢!
<?php
function hideEmailAddress($email)
if(filter_var($email, FILTER_VALIDATE_EMAIL))
list($first, $last) = explode('@', $email);
$first = str_replace(substr($first, '3'), str_repeat('*', strlen($first)-3), $first);
$last = explode('.', $last);
$last_domain = str_replace(substr($last['0'], '1'), str_repeat('*', strlen($last['0'])-1), $last['0']);
$hideEmailAddress = $first.'@'.$last_domain.'.'.$last['1'];
return $hideEmailAddress;
$email = "$user->email";
$smail = hideEmailAddress($email);
echo "<a href='mailto:$smail?subject=Buongiorno&body=Hello;'>.</a>";
?>
【问题讨论】:
如果您试图防范 bots,但很高兴 human 看到该地址,请参阅Hide Email Address from Bots - Keep mailto: 了解一些 i>可能阻止一些机器人发现地址。 【参考方案1】:让我们用一个简单的比喻来应用你的请求:
我有一张海报。我希望看到那张海报的人给我发邮件,但不知道我的地址。我怎样才能隐藏我的地址,但仍然让他们向它发送邮件。我试着写“** P***** R***, I*****”,但人们无法给我发邮件。
显然,这没有多大意义:如果阅读海报的人看不到地址,他们将如何发送任何东西?
所以让我们稍微调整一下:
我有一张海报。我希望看到那张海报的人给我发邮件,但不知道我的个人地址。在不知道我的个人地址的情况下,如何让他们在某个地方向我发送邮件。
现在我们可能会想到一些解决方案:
在我们可以取件的地方设置一个匿名邮箱,并将该地址贴在海报上。 与邮寄公司达成协议,将所有以某种方式发送的邮件转发到我们的私人地址。这个比喻非常适合电子邮件 - 你不能在不知道发送到哪里的情况下发送电子邮件,但你可以:
有一个单独的电子邮件帐户用于特定目的。 具有从一个地址到另一个地址的转发规则。从比喻上看不太明显,而且很常用,你可以使用一个HTML表单作为“转发邮箱”——允许用户在表单中输入消息,并且有PHP代码接收他们提交的内容,然后通过电子邮件发送给您。
请注意,使用上述任何方法,您将吸引垃圾邮件 - 人们编写的软件会“抓取”网络以寻找任何看起来像电子邮件地址或联系表格的内容,然后尝试向它发送垃圾邮件。这就是为什么您通常会在联系表单旁边看到“验证码”检查,至少让这些机器人更难处理。
【讨论】:
【参考方案2】:不想成为那个人,但这实际上是不可能的。您需要指定要发送的实际电子邮件地址
【讨论】:
以上是关于隐藏或替换电子邮件地址 mailto:Laravel的主要内容,如果未能解决你的问题,请参考以下文章
mailto 链接不会在 iOS 上将电子邮件地址插入邮件表单