2013-03-27 3 views
8

최근 Gmail 같은 웹 메일 클라이언트가 target="_blank"<a> 태그에 추가하는 등 HTML 이메일에서 변경 작업을 수행한다는 사실을 알았습니다.Gmail에서 URL의 값을 제거하지 않게하려면 어떻게해야합니까?

나는 또한 다른 변경이 일어나는 것을 발견했습니다. 내 PHP 스크립트에서 HTML 메일을 Gmail 및 기타 웹 메일 클라이언트로 보낼 때 링크의 URL에 포함 된 변수 값이 제거됩니다. 이메일은 Gmail에서 수신 될 때

$mailContent = '<p><a target="_blank" href="https://example.com/confirmation.html?verification=x1x1x1x1x1x1x1x&[email protected]">click here to go to the web site and activate your account!</a></p>'; 

그러나이 HTML 코드는 다음과 같이 나온다 :

<p><a target="_blank" href="https://example.com/confirmation.html?verification=&email=">click here to go to the web site and activate your account!</a></p> 

소위, 예를 들어, 내가 내 PHP 코드에서 설정하고있어 값입니다 값 x1x1x1x1x1x1x1x[email protected]<a> 태그 내에서 제거되었습니다.

Gmail에서 제거하지 못하도록 URL에 전달할 변수의 값을 어떻게 보호합니까?

+1

이메일 값을 'url_encode' 시도하십시오 – Crisp

+0

Gmail을 액세스하는 방법을 보여주기 위해 게시물을 편집하고 PHP 코드를 포함시켜주십시오. thx –

+0

@ alex-shesterov : 저는 PHP에서 Gmail에 액세스하지 않습니다. 받은 이메일에서 Gmail이 작동합니다. – Questioner

답변

3

Gmail의 메시지에서 원본/소스을 클릭하면 URL이 정상적으로 보이는지 확인할 수 있습니다. 그렇다면 Gmail에서 메시지를 표시하는 방식이 문제라는 것을 알고 계실 것입니다. 만약 소스 코드가 바뀌었다면, 웹 페이지/PHP/CMS (당신이 사용하는 코드)에 어떤 것이 있는지 궁금해하고있었습니다.

@Crisp는 URL-encoding으로 시도해야합니다. 여기 W3 reference이 있습니다.

1

이것은 완벽한 대답은 아니지만 응용 프로그램에서 허용하는 경우 URL 축소자를 여러 번 사용했습니다.

http://goo.gl/은 API가 구현하기 쉽고 Google이 매우 빠르기 때문에 선호합니다. 나는 클래스에서 함수를 가지고 있고 그것을 통해 내 URL을 실행하고 그것이 필요할 때마다 리턴을 보낸다.

+0

+1 비표준이고 완벽하지는 않지만 항상 효과가있는 솔루션) –

+0

일부 스팸 필터는 URL 단축 문자를 스팸으로 사용하는 이메일을 표시합니다. Google이 스팸으로 자신의 URL 단축기를 표시할지 모르겠다. – Michael

0

html로 이메일을 보내려면 Quoted-printable 인코딩을 사용하십시오. $ mailContent의 문제는 "="가 = 3D로 표시되어야한다는 것입니다.

다음을 추가하십시오. $ mailContent = quoted_printable_encode ($ mailContent);

관련 문제