3

Web サイトのコントローラーで、Web サイトへのリンクを含む電子メールを生成しています。

"http://" & Request.Url.Authority & "/some-page"

localhost:12345これは、ローカル マシン ( returns ) および運用環境 ( returns )でテストしたときに機能しますwww.company.comが、結果として 1 人がこれを取得しました。

http://www.company..com/some-page

ご覧のとおり..、ドメイン名には 2 があります。このエラーを再現できません。

編集:もう少し情報

  • 送信するメールの種類はプレーン テキスト メールです (HTML や RTF はありません)
  • 問題のあるリクエストが行われたとき、ウェブサーバーのログには www.company.com がドメインとして表示されます
  • メールの部分的なスクリーンショットしか受け取りませんでした。電子メール クライアントは Outlook だと思いますが、Outlook がリンクを誤って解釈した理由がわかりません。
  • この人物 (またはマルウェア) がこのメールの内容を編集した可能性は確かにあります。
4

3 に答える 3

2

これは、実際には電子メールのエンコード方法に問題があります。この回答を参照してください: https://stackoverflow.com/a/6603002/186288。要約すると、エンコーディングを UTF8 に変更して、メールの base-64 エンコーディングを強制する必要があります。そうしないと、一部のメール クライアントがデフォルトの Content-Transfer-Encoding: Quoted-Printable; を誤って解釈する可能性があります。エンコーディングし、たまたまラップ ポイントに到達した URL に余分な「.」を追加します。

これを行うには、メールを送信する前に次の行を追加します。

mail.BodyEncoding = System.Text.Encoding.UTF8;
于 2014-09-09T01:12:14.730 に答える
2

簡単な例でこれをもっと早く試してみるべきでした:

Module Module1
    Sub Main()
        Dim SomeAddress As New Uri("http://www.example..com/test")

        Console.WriteLine(SomeAddress.Authority)
    End Sub
End Module

これにより、コンストラクターで例外がスローされます。

System.UriFormatException - 無効な URI: ホスト名を解析できませんでした

したがって、顧客は私のコードを編集しなければ、そのようなメールを受け取ることはできませんでした。

于 2013-04-27T12:33:59.423 に答える