Подтвердить что ты не робот

Mailto: ссылки и веб-почта

Есть ли способ реализовать ссылку mailto:, которая работает с клиентами электронной почты?

Изменить - поэтому традиционная ссылка mailto (как я подозревала) не собирается работать. Так кто-нибудь видел что-то похожее на те rss-кнопки, которые вы видите на самых популярных сайтах?

4b9b3361

Ответ 1

Ссылки обрабатываются браузером пользователя. GMail имеет клиентскую установку (GMail Notifier), которая позволяет вам указать, что вы хотите, чтобы GMail обрабатывал все ссылки mailto.

Но нет никакой возможности для веб-страницы указать, что ссылка mailto должна обрабатываться приложением webmail (даже если бы это было возможно, как бы вы узнали, какой из них?).

Ответ 2

Это действительно больше проблема веб-клиента, она уже доступна для Firefox:

http://starkravingfinkle.org/blog/2008/04/firefox-3-web-protocol-handlers/

но в конечном итоге это позволит пользователю решить, как их браузер обрабатывает ссылки mailto.

Ответ 3

Создайте текстовый файл с именем MailtoWebMail.reg со следующим содержимым...

Редактор реестра Windows версии 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MAILTO\Shell\открытый\команды]

@= "\" (BrowserExecutable)\ "(Параметры)"

где (BrowserExecutable) заменяется полным путем к вашему браузеру (например, C:\Program Files\Internet Explorer\iexplore.exe) и (Параметры) заменяется соответствующей строкой для почтовой службы, как описано ниже...

GMail "Http://mail.google.com/mail/?view=cm&fs=1&to=%1"

Hotmail "Http://hotmail.msn.com/cgi-bin/compose?To=%1&mailto=1"

Yahoo Mail "Http://compose.mail.yahoo.com/?To=%1"

Netscape Mail "Http://webmail.netscape.com/compose.adp?mailto=%1"

Mail.com "Http://mail01.mail.com/scripts/mail/Outblaze.mail?composeto=%1&compose=1"

Opera Web Mail "Http://mymail.operamail.com/scripts/mail/Outblaze.mail?compose=1&did=1&a=1&to=%1"

Примечание. Не должно быть пустой строки после строки [HKEY_LOCAL_MACHINE]

MikeB

Ответ 4

Я просто занимаюсь мозговым штурмом. Возможно, вы можете подключить обработчик Javascript к ссылке, которая запрашивает пользователя, если он/она хочет войти в учетную запись электронной почты (вместе со списком поставщиков). Если у вас есть правильные URL-адреса для поставщиков веб-почты, вы сможете вызвать их на основе пользовательского выбора. Если пользователь отвечает нет, верните true из обработчика и предположительно ссылка будет работать нормально.

См., например, http://toric.blogspot.com/2005/07/gmail-compose-link.html и http://blog.monstuff.com/archives/000238.html

Ответ 5

Вот два примера Opera UserJS, которые вы можете проверить, чтобы дать вам представление о том, как вы можете делать это на обычных страницах. (Очевидно, что функции, специфичные для UserJS, не будут работать на обычной странице, но вы можете использовать регулярные события.)

Этот узел ловит левые клики по ссылкам на mailto и открывает их в Gmail, например. Он также может обрабатывать формы.

http://shadow2531.com/opera/userjs/BeforeMailtoURL.js

Этот пользователь ловит все действия mailto, имеет более общий синтаксический анализатор (который поддерживает любые hname, а не только, cc, bcc, subject и body) и имеет более синтаксис строки формата:

http://shadow2531.com/opera/userjs/BeforeMailtoURL.zip

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

Или вы можете просто запустить страницу и обработать все ссылки mailto.

Но если вы хотите перехватить mailto-действия в поле адреса, используя window.open или document.location и т.д., вам понадобится что-то вроде HTML5 registerProtocolHandler или что-то вроде поддержки Opera webmailprovider.ini. Вы можете использовать registerProtocolHandler в Firefox, но по умолчанию он ограничен доменом, на который вы его установили.

Итак, в основном, вы либо конвертируете ссылки mailto в http (s), чтобы веб-почта составляла URI спереди, либо в то время, когда вы вызываете действие mailto. Последнее работает намного лучше.

Преобразование ссылки mailto в состав веб-почты для составления URI включает в себя несколько вещей. Во-первых, вам нужно знать, какие строки строки запроса принимает веб-почта. Затем вам нужно проанализировать URI mailto, чтобы разделить его на нужные вам части. Затем вам необходимо декодировать и перекодировать (чтобы нормализовать) эти части. Затем вам нужно объединить несколько вхождений значений. И вам нужно обрабатывать вещи нечувствительным к регистру, а также проверять и избегать опасных символов и% HH и т.д.

Для синтаксического анализа вы можете сделать быстрое и грязное регулярное выражение, но вы получите лучшие результаты с полным парсером URI партитуры и нормализующими функциями.

Итак, если вы просто хотите обработать щелчок левой кнопкой мыши по ссылкам, вы можете сделать этот кросс-браузер. Более того, вы должны использовать любые крючки, которые дает вам конкретный браузер.

Ответ 6

Гипотетически, предполагая, что клиент электронной почты передает аргументы через процесс аутентификации (или пользователь уже прошел проверку подлинности), я не понимаю, почему это так невозможно. Это невозможно сделать простым способом mailto:, но можно было бы предоставить подборку ссылок на популярные службы электронной почты и использовать Javascript для перехвата кликов по mailto: таким ссылкам, чтобы пользователь представлял раскрывающийся список список возможных служб электронной почты (или их локальный почтовый клиент). Ссылки будут нести адрес To:/Subject:, но формируются в любой структуре, которую требует служба веб-почты.

Ответ 7

Если вы используете учетную запись электронной почты Google Apps (размещенную электронную почту), то Gmail Notifier не будет работать. Однако вы можете использовать букмарклет, чтобы изменить все ваши письма mailto: ссылки на ссылки, которые указывают на вашу веб-почту.

Вот букмарклет, который я написал, чтобы сделать именно это, он выделит все фиксированные ссылки в красном.

javascript:for(var i=0;i<document.links.length;i++){var a=document.links[i];if(a.href.indexOf('mailto:')==0){a.href='http://mail.google.com/a/sample.com/mail?extsrc=mailto&url='+a.href;a.style.backgroundColor='red';a.style.color='white'}};return true;

Просто не забудьте изменить http://mail.google.com/a/sample.com на любой подходящий хост-адрес для вас.

Я полагаю, что это будет работать с рядом других почтовых клиентов, если вы просто измените эту ссылку.

Ответ 8

Вид старой нити, но никто еще не ответил на это, так что здесь идет.

Как сказано выше, почти ничего не говорится о том, что "mailto:" отправляется в Gmail, есть еще один способ обмануть этого кота, который отлично работает во многих ситуациях. Просто измените URL. Удалите префикс "mailto:" и вставьте "https://mail.google.com/mail/?view=cm&fs=1&tf=1&to=".

Это похоже на обаяние, независимо от того, поступает ли пользователь через Google Apps. Если пользователь не войдет в систему, он будет проходить через этот шаг, а затем Gmail все равно начнет новое сообщение. Единственный недостаток, который я заметил, заключается в том, что если (когда?) Google решает изменить схему закладок, это может потребоваться немного подстройки.

Возможно, имеет смысл выполнить это преобразование до или после URL-адреса в DOM, в зависимости от вашей ситуации.

Ответ 9

Ой и дважды щелкните MailtoWebMail.reg, чтобы вставить эту команду в свой реестр.

MikeB

Ответ 10

Кто-нибудь видел номера, указав, какой процент пользователей веб-почты настроил свои системы с плагинами и т.д., чтобы правильно иметь mailto: ссылки, отправленные в их систему браузера/веб-почты, а не на настольное приложение? Это имеет решающее значение при принятии решения о том, использовать ли ссылки mailto: на сайте или в форме контакта, но у меня возникают проблемы с цифрами для руководства решением.