私は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);
アンカーを生成するコードを表示できますか? – Phil