Інструменти розробника · URL енкодер & декодер
Як закодувати поштову розсилку: посилання з темою, розбиттям рядків і амперсами
· Чому це питання
Опубліковано ToolAcre · Редакція журналу
Увійти виворітна обробка українська

Пошта: посилання з темою і тілом є URL, щоб пробіли, розриви рядків і повинні бути відсотково зашифровані. Ця пошта показує, які перерви, коли вони не і як побудувати посилання, що відкривається правильно в поштових клієнтів.
Зв'язатися з нами, суб'єкт якого припинився на першому просторі — бетонна розбита пошта: і чим отримав поштовий клієнт
Контакти <a href="mailto:[email protected]?subject=Support Inquiry">Відправити</a> перерву через пробіли в "Підтримка Запитання" розірвати посилання в поштових клієнтів. Багато клієнтів отримують тільки "Підтримка" як предмет. Це відбувається тому, що mailto: посилання слід RFC 6068, вказавши про те, що пробіли та спеціальні персонажі вимагають відсоток в параметрах запиту. Ампери потрібні %26 кодування, щоб уникнути того, що сепаратори параметра.
Брейкен Mailto: посилання демонструють проблему чітко. Побудовані посилання, такі як <a href="mailto:[email protected]?subject=Support Inquiry&body=Reply">Контакти</a> в результаті повідомлення з темою «Підтримка». Тестування в різних поштових клієнтів розкриває різну толерантність: Apple Mail частково ручить посилання, Gmail показує тільки "Підтримка", Outlook повністю не вдається.
Пошта: URL схема — RFC 6068 в короткий, і які частини є рядок запиту
RFC 6068 визначає пошту: URL схеми з правилами кодування компонентів. На відміну від звичайних URL, mailto: має певні правила для компонента. Адреса частини[email protected]) залишаються некодованими; @ і домени є структурними. Параметри запитів (підключення, тіло, cc, bcc) потребують кодування. RFC 6068 посилання RFC 3986 для правил, що мандатують на пробіл і спеціальні символи. Амперсанди у значеннях стають %26 при з'яві даних, що не розмежуються.
Розуміння пошти: структура схеми запобігає кодуванню помилок. Форма: mailto:address?parameter1=value1¶meter2=value2. Опитування позначок вводять розділи запиту. Відокремлюючі параметри Амперандс залишаються некодовані; тільки амперсанди в коді значень за %26. Якщо суб'єкти містять "Tom & Jerry", кодування як Tom%20%26%20 Джеррі. Ампериди між предметом і тілом залишаються некодовані. Цей непристойний кодування є помилкою.
Захоплюючи тему та тіло — пробіли як %20, лінійні розриви як %0D%0A, так і в %26 внутрішні значення
Консервувати дисципліни і органи вимагають ретельного поводження з пробілами і спеціальними героями. Простір стає %20 в mailto: посилання, не плюс знаки на відміну HTML форми. Ця критична відмінність показує розробники, знайомі з веб-формами. Лінія розбиває код як %0D%0A (CRLF закінчення лінії в електронній пошті. Ампери стають %26. Процентні знаки стають %25. Теми, як правило, містять пробіли, акценти та дужки. Жінки містять пробіли, акценти, лінійні перерви.
Загальні кодування в Mailto: посилання включають: пробіли як %20, нові лінії як %0D%0A, ампери як %26% до %25, засупу 10 %23, питання як %3FНе-ASCII як акценти перший конвертер в UTF-8 байти потім відсотків-encode. "Увімкніть звіт" %C3%9ber%20report. "Привіт! Добрий день%21%0D%0AGoodbye. Закодувати лише значення, не структурувати ? та символи.
Створений приклад: побудуйте посилання з темою, дволінійним тілом і cc — зашифрований результат і як він з'являється в поштовому клієнті
Ведуться роботи: будівельні посилання з темою «Зберігаємо денний (Септ)», тіло «Нам обговорюємо: Квартальні цілі, і cc "[email protected]" демонструє повне кодування. Вимоги: пробіли як %20, дужки як %28 й %29. Бодибилдери повинні: "Нехай ми обговорюємо:" в основному не змінюється (space is %20), лінійні розриви як %0D%0A, "Швидке завдання" в основному незмінні. поле cc не вимагає кодування.
Отримана пошта:[email protected]?subject=Зберігати%20agenda%20%28Септ%29&body=Лет%20uй%20d%3A%0D%0 Акварель%20gп»ї[email protected]Тестування в браузерах показує різні інтерпретації поштових клієнтів. Gmail відкриває композиційні вікна з правильним предметом, дволінійним тілом та cc. Outlook показує аналогічні результати. Apple Mail вимагає дозволу. Старші клієнти не мають підтримки організму.
Чому + неправильно тут — mailto: RFC 3986, не утворюють кодування, тому + залишається плюс
Чому знаки плюс неправильні -mailto: RFC 3986, не формувати кодування, тому плюс залишається літровим - критичні відмінності. HTML форма кодування використовує плюс для пробілів у рядках запиту. RFC 3986 і RFC 6068 як визначити %20 для приміщень. Пошта: з темою="Meeting+Agenda" створює дисципліни з літеральним плюсом, не пробілами. Ця помилка відбувається копіювання логіки-кодування у вигляді пошти: покоління. Плюс означає плюс, не простір.
Чому це питання: розробники копіювання форми GET логіку подачі на пошту: посилання на генерацію. Предмет «Меетінг Агенда» стає «Метінг+Агенда» у формах. У пошти: посилання, він створює "Меетінг+Агенда" з літровими плюсами. Користувачі вручну закріплюють підкладки. Тестування пошти: посилання вимагає натискання їх або вивчення створених посилань, не аналізувати правила форми.
Загальні помилки — забути HTML-випадкові і сепаратори в рефлі, і відсотків-пригоди @ в адресі
Загальні повідомлення: будувати помилки включають забування HTML ampersand escaping в атрибутах href. У HTML, ampersands в атрибутах & для дійсності XHTML. href="mailto:address?subject=Test&body=Test" недійсний HTML; він повинен бути href="mailto:address? Тема=Тест&тіло=Тест. Це відрізняється кодуванням URL кодування. HTML Крісти інтерпретують & як і перед URL-адресами процесу браузера.
Тестування для цих помилок вимагає вивчення HTML Випадкові та браузерні консолі. Клацніть правою кнопкою миші і виберіть "Inspect Element" для перегляду фактичних значень href. Скопіювати значення href у адресних рядках (з поштовою списком) та перевірте поштові клієнти. У деяких браузерах, але не інші. Автоматизоване тестування важко, оскільки Mailto: передбачає зовнішні клієнти, що робить ручну перевірку загальним.
Що це не обкладинка — відмінність поштового клієнта та декілька одержувачів на глибину
Що це не охоплює відмінність поштових клієнтів і кілька одержувачів. Не всі клієнти однаково підтримують RFC 6068 параметри. Параметри тіла мають широку підтримку, але деякі старші клієнти ігнорують її. Параметри cc і bcc мають змінну підтримку. Кілька одержувачів вимагають відокремити адреси електронної пошти, кодування комами як %2C для складних адрес. Різні населені пункти вимагають належного UTF-8 кодування для відображення.
еволюція поштових клієнтів: поведінка на платформах. Сучасні веб-клієнти (Gmail, Outlook.com) краще RFC 6068 комплаєнс від старших клієнтів робочого столу. Мобільні клієнти іноді мають строгу справу. Деякі підтримують багатий текст, а інші підтримують лише звичайний текст. Розробники повинні протестувати з користувачами електронної пошти, які фактично використовують аудиторію. Реальна реалізація варіюватися RFC 6068 характеристики.
Похід: закодувати кожне значення, зберегти структуру — як працює URL однозначний режим encoder & decoder дає вам кодований предмет і тіло, щоб падати
Виграш: зашифруйте кожну вартість, зберігайте структуру URL енкодер & decoder однозначний режим виробляє закодовані предмети і органи, які готові вставляти посилання. Інструмент приймає некодовані значення, такі як "Подобається денний (Sept)" і виробляє "Метінг%20agenda%20%28Септ%29". Скопіювати вихід безпосередньо в mailto: href атрибути. Для багатолінійних тіл, пасти однотекстові версії з рядками, отримання %0D%0A-encoded версій.
Найкраща практика збирання пошти: посилання з закодованих деталей, а не ручне будівництво. При будівництві HTML динамічно JavaScript або шаблони, закодувати кожен параметр окремо перед захопленням та сепараторами. Для статичної HTML, URL encoder & decoder надійно тестує кодування перед почерком. Процеси кодування документів в коментарях коду. Тестування отриманої пошти: посилання, натиснувши їх фактичними поштовими клієнтами перед розгортанням.