Можно ли использовать относительный URL протокола по электронной почте?

Существует существующее обсуждение [1] об использовании относительного URL протокола в HTML, но как насчет электронной почты?

Будет ли почтовый клиент или поставщики услуг, такие как Gmail, или изменить относительный URL-адрес протокола, когда они будут использоваться в электронной почте HTML?

[1] Могу ли я изменить все мои ссылки http://только на//?

Ответы

Ответ 1

Я отправил письмо через Gmail с этим контентом:

<a href="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js">link</a>

и он был получен без изменений. Когда я щелкнул правой кнопкой мыши по ссылке, чтобы скопировать адрес ссылки, Chrome добавил https: к ней (поскольку Gmail использует безопасный HTTP), но когда я проверил элемент HTML, он показал тег <a>, как я его написал.

Неправильно для почтовых серверов изменять содержимое писем.

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

Компромисс заключается в том, чтобы позволить браузеру загружать контент с безопасностью, соответствующей загружаемой странице - эффективность для небезопасной страницы; полная гарантия безопасности для безопасной страницы.

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

Кроме того, не-браузерный почтовый клиент не имеет протокола для начала. Он загружает информацию, а затем загружает ее с диска. Если вы действительно хотите, чтобы клиент электронной почты выбирал загружать внедренный контент с уровнем безопасности, с которым он загружал электронную почту, вы позволили бы клиенту искать информацию на том же компьютере. (Они действительно сделают это, предположив, что // означает file:///.)

Как безопасно размещать URI // в электронном письме? Я бы сказал, что это не имеет смысла; поэтому для клиентов, не поддерживающих браузер, не стал стандартным способом, что означает, что вы смотрите на поведение undefined.

Лучше выбрать протокол, основанный на чувствительности информации, идентифицируемой URI. Является ли это диаграммой проприетарных финансовых данных? Используйте https. Это лолкат? Используйте http.

Ответ 2

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

но некоторые почтовые клиенты (особенно Outlook, как обычно) не будут использовать HTTP или HTTPS в качестве протокола. Вместо этого они используют протокол file://и предполагают, что ресурс, на который вы ссылаетесь, находится на локальном компьютере. Но это не будет. Поэтому не используйте их в письмах. Вы должны быть уверены, что сервер, с которого вы запрашиваете, способен обслуживать контент по HTTP и HTTPS. Если нет, вы можете завершить выборку содержимого из незащищенного или несуществующего порта сервера.

IE6 не знает, как с этим справиться. Если вам небезразлична поддержка Internet Explorer 6, вы не должны использовать их.

IE7-8 поддерживает относительные URL-адреса протокола, но они в конечном итоге извлекут ресурс дважды. Один раз из HTTP и один раз через HTTPS. Это может немного замедлить работу, но, как я вижу, что это не проблема для кого-либо, кроме человека, использующего IE7-8, и если вы используете IE, у вас есть более важные вещи, о которых можно беспокоиться.

зависит от браузера, поэтому зависит от того, какой браузер вы используете GMAIL, работающий отлично в crome, но не в IE6.