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 インストールを使用しており、ブラウザー クライアントで他のサイトからのリンクを受け取る際に問題はありませんでした。(ブラウザ クライアントは Webmasters アカウントの一部として提供されます。)
何か案は?
更新: リンクを生成するコードは次のとおりです。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);