隐藏或替换电子邮件地址 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&amp;body=Hello;'>.</a>";

?>

【问题讨论】:

如果您试图防范 bots,但很高兴 human 看到该地址,请参阅Hide Email Address from Bots - Keep mailto: 了解一些 i>可能阻止一些机器人发现地址。 【参考方案1】:

让我们用一个简单的比喻来应用你的请求:

我有一张海报。我希望看到那张海报的人给我发邮件,但不知道我的地址。我怎样才能隐藏我的地址,但仍然让他们向它发送邮件。我试着写“** P***** R***, I*****”,但人们无法给我发邮件。

显然,这没有多大意义:如果阅读海报的人看不到地址,他们将如何发送任何东西?

所以让我们稍微调整一下:

我有一张海报。我希望看到那张海报的人给我发邮件,但不知道我的个人地址。在不知道我的个人地址的情况下,如何让他们在某个地方向我发送邮件。

现在我们可能会想到一些解决方案:

在我们可以取件的地方设置一个匿名邮箱,并将该地址贴在海报上。 与邮寄公司达成协议,将所有以某种方式发送的邮件转发到我们的私人地址。

这个比喻非常适合电子邮件 - 你不能在不知道发送到哪里的情况下发送电子邮件,但你可以:

有一个单独的电子邮件帐户用于特定目的。 具有从一个地址到另一个地址的转发规则。

从比喻上看不太明显,而且很常用,你可以使用一个HTML表单作为“转发邮箱”——允许用户在表单中输入消息,并且有PHP代码接收他们提交的内容,然后通过电子邮件发送给您。

请注意,使用上述任何方法,您吸引垃圾邮件 - 人们编写的软件会“抓取”网络以寻找任何看起来像电子邮件地址或联系表格的内容,然后尝试向它发送垃圾邮件。这就是为什么您通常会在联系表单旁边看到“验证码”检查,至少让这些机器人更难处理。

【讨论】:

【参考方案2】:

不想成为那个人,但这实际上是不可能的。您需要指定要发送的实际电子邮件地址

【讨论】:

以上是关于隐藏或替换电子邮件地址 mailto:Laravel的主要内容,如果未能解决你的问题,请参考以下文章

隐藏机器人的电子邮件地址 - 保留邮件地址:

对网络爬虫隐藏电子邮件地址

mailto 链接不会在 iOS 上将电子邮件地址插入邮件表单

如何阻止垃圾邮件发送者从 mailto 链接获取电子邮件地址? [复制]

ios分享联系人结合mailto

使用mailto在网页中链接Email地址