Скрыть Mailto: ссылка - PullRequest
       11

Скрыть Mailto: ссылка

3 голосов
/ 31 декабря 2010

У меня на сайте разные почтовые адреса: адрес электронной почты, на который в настоящее время попадают различные харвестеры, и в дальнейшем меня спамят.

Может кто-нибудь помочь мне в создании PHP-кода для следующего:

<a href="mailto:info@company.com">info@company.com</a>

Чтобы предотвратить сбор адреса, и в равной степени я могу использовать этот скрипт на разных адресах электронной почты, отображаемых на сайте?

Спасибо

Ответы [ 9 ]

3 голосов
/ 31 декабря 2010

Другие предложили написать адрес электронной почты, используя JavaScript document.write().Мне не нравится этот подход, потому что он легко побежден ботами, которые мешают отображать страницу.Я получил спам на адреса электронной почты, «защищенные» таким образом (не так много и не так быстро, как незащищенные адреса, но все же приходят).

Мой предпочтительный подход - написать ссылку с использованием фиктивной электронной почты-адрес электронной почты (который можно перейти по адресу электронной почты honeypot на вашем почтовом сервере, чтобы вы могли определить, какие IP-адреса сервера следует занести в черный список).Затем используйте обработчик onClick для ссылки, чтобы заменить реальный адрес электронной почты, когда пользователь щелкает по нему.Ни один харвестер электронной почты не будет отправлять событие click для каждой ссылки на странице, оно просто не будет работать.

<a href="mailto:fake@example.com" 
   onClick="this.href=this.href.replace('fake', 'real')">
Send Us E-mail</a>

В этом примере мы начинаем с "fake@example.com" и заменяем"fake" с "real", когда пользователь щелкает ссылку.

Еще одна идея, которая мне нравится, - это ввести в форму свой адрес электронной почты.Затем вы отправляете им электронное письмо, используя скрипт.Они отвечают на этот адрес электронной почты, чтобы инициировать контакт с вами.Другими словами, они не получат ваш адрес электронной почты, пока не предоставят вам действующий, а ваш адрес никогда не будет на сайте.

2 голосов
/ 31 декабря 2010

Лучшее решение, которое я нашел, это использовать немного javascript.Вы вызываете функцию, передавая адрес, и она распечатает для вас ссылку.Поскольку большинство ботов не обрабатывают JavaScript, это должно работать в большинстве случаев:

<script type='text/javascript'>
    function email(name, domain, withlink) {
        var addr = name + '@' + domain;
        if(withlink) {
            document.write('<a href="mailto:' + addr + '">' + addr + '</a>');
        } else {
            document.write(addr);
        }
    }
</script>

А затем, когда вы хотите напечатать адрес электронной почты на сайте:

<script>email('myuser', 'mydomain');</script>

Если вы хотите, чтобы это делало кликабельную ссылку:

<script>email('myuser', 'mydomain', true);</script>

Примечание: это не проверено, но оно должно работать.Есть также более продвинутые техники, к которым относятся некоторые другие ответы, но большинство из них основаны на такой основе.

1 голос
/ 31 декабря 2010

Я бы сделал это следующим образом:

function obfuscate_email($email) {
    $obf = '';
    for($i = 0; $i < strlen($email); $i++) {
        $obf .= '&#' . ord($email[$i]) . ';';
    }
    return $obf;
}

echo '<a href="mailto:' . obfuscate_email('info@company.com') . '">' . obfuscate_email('info@company.com') . '</a>';

Исходный код HTML:

<a href="mailto:&#105;&#110;&#102;&#111;&#64;&#99;&#111;&#109;&#112;&#97;&#110;&#121;&#46;&#99;&#111;&#109;">&#105;&#110;&#102;&#111;&#64;&#99;&#111;&#109;&#112;&#97;&#110;&#121;&#46;&#99;&#111;&#109;</a>

Что видит пользователь:

info @company.com

1 голос
/ 31 декабря 2010

Мне всегда нравился Hive Enkoder для создания почтовых ссылок:

http://hivelogic.com/enkoder/

1 голос
/ 31 декабря 2010

Я бы сделал это в Javascript. Попробуйте что-то вроде

<script>
document.write('<a href="mailto:inblahfo@company.com">inblahfo@company.com</a>'
.replace(/blah/g, ''));
</script>
0 голосов
/ 22 мая 2017

Вы можете использовать бесплатные внешние службы, такие как aemail.com :

@ email - это бесплатная служба скрытия электронной почты, которая скрывает электронную почту с помощью коротких URL-адресов, перенаправляя отправителей на mailto-url после нажатия на ссылку.

После ввода адреса электронной почты на aemail.com вы получите короткий URL-адрес, который можно использовать для замены ссылки «mailto».После нажатия на ссылку ваш пользователь будет перенаправлен на URL-адрес mailto без какого-либо уведомления aemail.com. API может использоваться для динамического скрытия электронных писем / получения URL.

Пример:

<a href="mailto:info@itee.com">Contact</a>

Заменено на

<a href="https://aemail.com/q2">Contact</a>

Будет работать ссылка на электронную почту.

0 голосов
/ 31 декабря 2010

Я рекомендую recaptca .Это делает использование введите слова в двух изображениях, прежде чем раскрывать вашу электронную почту.Это абсолютно безопасно, а также помогает оцифровывать книги.Веб-сайт предоставляет отличный API (код для копирования и вставки) для его реализации на вашем сайте

Обновление - Вот прямая ссылка на mailhide

0 голосов
/ 31 декабря 2010

Вы можете сгенерировать почтовую ссылку в JavaScript динамически, как это: http://www.webmarksonline.com/content/dynamicemaillink.htm

0 голосов
/ 31 декабря 2010

Самое простое решение - создать образ для адреса электронной почты вашей компании:)

Или

Вы можете использовать этот онлайн-инструмент:

<script type="text/javascript">
  var part1 = "me";
  var part2 = "mydomain.com";
  var part3 = "Click Here to Send";
  document.write('<a href="mai' + 'lto:' + part1 + '@' + part2 + '">');
  document.write(part3 + '</a>');
</script>

Или

Ознакомьтесь с другими методами:

...