2011-10-27 6 views
0

Zend_Mail을 사용하여 SMTP를 통해 문자 이메일을 보내고 있습니다. 테스트 환경에서 나는 브라우저 클라이언트를 통해 이메일을 수집 할 때 URL이 하이퍼 링크로 변환되었지만 링크와 일반 텍스트 사이의 경계가 잘못된 위치에 그려져 있음을 발견했습니다.일부 앵커 태그가 올바르지 않은 이유는 무엇입니까?

예를 들어, 아래의 이메일 스 니펫에서 사용자에게 등록 이메일을 보냈 음을 알 수 있습니다. 여기에는 'id'및 'code'에 대한 매개 변수가 포함됩니다. 이 경우 브라우저 클라이언트는 'id'가 하이퍼 링크의 일부이지만 'code'가 아니라고 결정했습니다. 때로는 '경계'임의의 자리에 그려진

please follow this link <a href="http://mydomain.com/user/validate/id/18">http://mydomain.com/user/validate/id/18</a>/code/1a0d917c1512c700f7237ae1f3727e47 If you did not... 

- 예를 들어, 코드 필드를 통해 절반 방법!

Outlook과 같은 클라이언트를 통해 이메일을 수집 할 때 문제가 발생하지 않는 것 같습니다.

아마도 이것은 내 PHP 환경과 브라우저 클라이언트 사이의 문자 집합의 일종의 비 호환성입니다. 그런데, 나는 표준 PHP 설치를 사용하고 있으며 브라우저 클라이언트의 다른 사이트에서 링크를받을 때 문제가 없었습니다. 브라우저 클라이언트는 웹 마스터 계정의 일부로 제공됩니다.

아이디어가 있으십니까?

업데이트 : 링크를 생성하는 코드는 다음과 같습니다. 당신이 일반에 쓸 때 : setBodyText() 당신이 이메일의 일부 텍스트를 설정으로 EOT, 작은 따옴표, 큰 따옴표 ... 같은 결과를 포함 조합의 모든 종류의 ...

$id   = $options['id']; 
$code  = $options['validation']; 
$link  = "http://mydomain.com/user/validate/id/" . $id . "/code/" . $code; 

$body = 'Thanks for registering ... please follow this 
link ' . $link . ' If you did not request ....please ignore it.'; 

$this->setBodyText($body); 
+0

해당 앵커를 생성하는 코드를 표시 할 수 있습니까? – Phil

답변

0

을 시도 텍스트 이메일 특별한 의미가없는 문자 만 쓰는 링크. 그것이 링크인지 이해하는 것보다 메일을 수신하는 클라이언트와 그것을 렌더링하는 방법. 그러나이 프로세스는 우리가 제어 할 수없는 것입니다 (클라이언트 측이며 사용자가 보유한 클라이언트에 따라 다름).

제 생각에 가장 좋은 방법은 도 설정이 당신이 링크를 렌더링하는 방법을 메일 클라이언트에 명시 적으로 말할 지내요

$yourMailObject->setBodyHtml($htmlString); 

를 호출 Zend_Mail 객체의 HTML 부분이다.

좀 더 작업해야하지만 클라이언트가 HTML 속성을 A 태그로 렌더링하기를 원하기 때문에 적절한 HTML을 전달하는 것이 더 좋습니다. $bodyText = "Something... click here: $link ...";

  • 을 준비 :

    1. (의 말을하자)이 $link 변수
    2. 에 일반 텍스트로 메일 본문을 준비 링크를 확인하고 넣어 : 요약하면

      는 워크 플로는 다음과 같다 HTML에서 메일 본문 : 메일 개체의 $bodyHtml = "<body><p>Click the link below</p><p><a href='$link'>$link</a></p><p>Or copy and paste in your browser the url:<br/><pre>$link</pre></p></body>";

    3. 호출 방법 모두 : $yourMailObject->setBodyText($bodyText)->setBodyHtml($bodyHtml);

    그러면 평소와 같이 메일을 보내십시오. 선택적으로 인라인 css 등을 추가하여보다 복잡한 방식으로 html을 사용자 정의 할 수 있습니다.또한 텍스트 전용 메일 (고정 폭 글꼴 사용)로 표시되도록 형식을 지정할 수 있지만 올바른 HTML을 전달 했으므로 클라이언트가 적절한 링크를 클릭 할 수 있습니다.

  • 관련 문제