2009-10-06 14 views
10

Moja aplikacja internetowa wysyła wiadomości e-mail do użytkowników. E-mail zawiera link do dalszego działania użytkownika. Nasze standardy bezpieczeństwa wymagają, aby link w e-mailu nie mógł być klikalny. Jednak klienci poczty e-mail rozpoznają adres https: // w wiadomości e-mail i automatycznie łączą adres URL.Zatrzymaj automatyczne hiperłącze w Outlooku, Gmailu itp.

Każdy pomysł, jak zatrzymać automatyczne wysyłanie klientów pocztą e-mail. Zastanawiam się, czy pomijam https: //, to może zatrzymać automatyczne łączenie. Ale jeśli muszę zachować https: //, istnieje sposób uniknięcia automatycznego łączenia.

Łącze w wiadomości e-mail jest dynamicznie konstruowane w kodzie C#.

+3

To naprawdę głupi standard bezpieczeństwa. Ryzyko kliknięcia linku w wiadomości e-mail jest dokładnie takie samo, jak kopiowanie-wklejanie linku z wiadomości e-mail do przeglądarki. Jest to bezpieczeństwo spowodowane niedogodnościami, które nie są wcale zabezpieczeniem. – abelenky

+2

@abelenky No. Możesz przypadkowo kliknąć łącze. Nie możesz przypadkowo skopiować i wkleić linku z wiadomości e-mail do przeglądarki i nacisnąć Enter. – djechlin

Odpowiedz

1

Zastąp rzeczywisty tekst małym obrazem GIF, który wygląda jak tekst.

Analizatory składni poczty e-mail nie rozpoznają tekstu w obrazie.

+1

+1, chociaż większość klientów poczty e-mail obecnie nie zezwala na wyświetlanie obrazów w wiadomościach e-mail, chyba że użytkownik na to zezwala. –

1

Moja aplikacja ma podobny poziom bezpieczeństwa. Rozwiązaniem, które zastosowaliśmy, było dodanie znaku podkreślenia na początku adresu URL (_http: //).

1

Obejmuję to pytanie, wiem, ale jest to istotne ... Chciałbym przedstawić rozsądny scenariusz, w którym automatyczne łączenie Gmaila (przynajmniej nie testowało innych klientów) nie ma sensu.

Klient ma na swojej stronie formularz zgłoszeniowy, w którym goście wypełniają niektóre dane osobowe i przesyłają je. Następnie system wysyła wiadomość e-mail z powiadomieniem do klienta, przedstawiając informacje dostarczone przez użytkownika.

Chcę poprawić wiadomość e-mail wysłaną do klienta, dodając na dole tekst < textarea> z polami, które użytkownik wypełnił w formacie CSV, aby klient mógł je po prostu skopiować i wkleić w arkusz kalkulacyjny.

Gmail, jednak nie rozpozna, że ​​adresy URL i adresy e-mail są wewnątrz < textarea> tagu, a "pomocny" dodaje < a href = "..."> ... </a> kod linku w okolicach adresu URL/e-maila - wewnątrz w textarea> <. Powoduje to wyświetlenie nieprzetworzonego kodu linku HTML w polu tekstowym> <.

17

Wiem, że ten wątek jest stary, ale sam miałem ten problem i nie był zachwycony poprawką obrazu gif. Jeśli pracujesz z wiadomościami HTML, nieco ładniejszym rozwiązaniem jest rozbicie tekstu linku za pomocą znacznika innego niż renderujący, który wyszukuje parser. Jestem fanem prostego nieistniejącą <Z>:

 
    https<z>://securesite.</z>com 

Działa to nawet w postach przepełnienie stosu: https://securesite.com.

Mam nadzieję, że to komuś pomaga.

4

Wystarczy utworzyć zwykły <span> tag wokół okrężnicy (<span>:</span>) czy coś takiego :)

1

Przepraszam, że pogłębiarka starą pytanie, ale ja po prostu starał odpowiedź zaproponowaną przez pieman72 i stwierdzili, że nie zrobił” t działają w perspektywie 2007-2013.Jednakże, owijając poszczególne elementy zawartości w komórkach tabeli zrobił oszukać parser Outlook:

Visit <table><tr><td>www.</td><td>website</td><td>.com</td></tr></table> for more information.

Pobiegłem przykładową wiadomość poprzez testowego pakietu Email On Acid i stwierdził, że wymyka parsera na wszystkich głównych E- klienci poczty, którzy automatycznie konwertują adresy URL (Outlook, iOS, Android 2.2 itd.) Nie przeprowadziłem żadnych testów dostarczalności.

5

Ja też chcę to wyłączyć, ponieważ uważam, że jest to "prawidłowe" użycie, ponieważ nie chce automatycznego łączenia (jeden powód jest taki, że projektant chce tego w ten sposób, a oni obecnie płacą rachunki).

W wiadomości e-mail wysyłane że nie ma obrazów, nagłówek zawiera nazwę domeny, w tym: EXTRANET.EXAMPLE.COM

I nawet umieścić style inline aby upewnić się, że pozostaje biały na czarnym tle: <span style="font-size: 1.5em;padding: 0.5em 0;text-transform: uppercase; font-weight:bold;color:#FFFFFF;text-decoration:none;">EXTRANET.EXAMPLE.COM</span>

Gmail tworzy łącze, dodaje podkreślenie, a także zmienia kolor na jasny niebieski zamiast białego.

Najpierw próbowałem zastąpić kropki przez &#46;, dzięki czemu wyglądało dobrze, ale nie oszukałem parsera Gmaila.

Więc dodałem łączonego przestrzeń, która działa dobrze (to znaczy, że głupcy parser Gmaila):

<span style="font-size: 1.5em;padding: 0.5em 0;text-transform: uppercase; font-weight:bold;color:#FFFFFF;text-decoration:none;">EXTRANET<span style="font-size:0.1em">&nbsp;</span>.<span style="font-size:0.1em">&nbsp;</span>EXAMPLE<span style="font-size:0.1em">&nbsp;</span>.<span style="font-size:0.1em">&nbsp;</span>COM</span>

+0

To podejście (umieszczanie wąskich niepodzielonych spacji wokół interpunkcji) powinno być akceptowane jako "poprawna" odpowiedź. Działa na Gmail i Mail.app. Wprowadzam "poprawny" w cudzysłowie, ponieważ zachowanie tych aplikacji klienckich wymaga odradzającego się hackowania. :-) – sheldonh

+0

zgodził się na @sheldonh, działa jak urok. – littlealien

0

@raugfer sugeruje w another answer: owinąć e-mail/URL z kotwicą.

<a name="myname">[email protected]</a> 

Cytując z tej odpowiedzi:

Ponieważ tekst jest już owinięty w hiperłącze, Gmail rezygnuje i zostawić ją w spokoju. :)

(uwaga: również pracował dla Apple klientem poczty.)

0

To, co zrobiłem ""

  • zastąpić wszystkie wystąpienia z <span style=""color:transparent; font-size:0px;"">[{</span>.<span style=""color:transparent; font-size:0px;"">}]</span>
  • zastąpić wszystkie wystąpienia „@” z <span style=""color:transparent; font-size:0px;"">[{</span>@<span style=""color:transparent; font-size:0px;"">}]</span>

Znaki te zatrzymane to parsowanie linków i adresów e-mail, ale nie są widoczne dla użytkownika. Negatywny jest fakt, że podczas kopiowania i wklejania wiadomości e-mail na przykład kończy się: "test1 {[{.}]} Domain {[{.}]} Com"

.

Powiązane problemy