2017-06-01 6 views
1

おはようすべて、メールでリンクを送信

私は現在、ユーザーがフォームに記入した後にメールを送信しようとしています。電子メールにはアクティベーションページへのリンクが含まれています。次のようにリンクを生成するための私のコードは次のとおりです。

mailMessage.Body = "<h1>Please click the link below to activate your account</h1><br /><a href = '" + HttpContext.Current.Request.Url.AbsoluteUri.Replace("Activation.aspx", "Activation.aspx?userId=" + userId) + "'>Click here to activate your account.</a>"; 

ただし、URLは、電子メールが送信されたときを示しています。

http://localhost:52621/RegisterUser.aspx 

私が間違って何をしているのですか?リンクを生成するコードに示すように、私はActivation.aspxの名前でページにアクセスしようとしていますが、これは起こっていません。どんな提案も素晴らしいだろう。前もって感謝します。

+0

いただきましabsoluteURIでの内容? –

+0

あなたは明らかにUriをRegisterUser.aspxページから入手しています。また、 "?userId = ..."部分をAbsoluteUriに追加することもできます.Uriは(あなたがそれを取得した後に)おそらく "Activation.aspx"で終了するからです。 –

+0

https://stackoverflow.com/questions/10719722/asp-net-app-to-send-an-mail-with-a-hyperlink –

答えて

0

ローカル開発サーバーをポート52621で実行しているので、上記のURLが表示されています。

あなたのプロジェクトを公開すると、あなたが一つの解決策は、それを手動でコーディングすることで、公開状態からのリンクを持っているしたい場合は、それはprobally

https://www.example.com/RegisterUser.aspx 

ようないくつかのドメインで走っ、異なっなります

mailMessage.Body = "<h1>Please click the link below to activate your account</h1><br /><a href='https://www.example.com/Activation.aspx?userId=" + userId + "'>Click here to activate your account.</a>"; 

私はそれを好きではありません。

あなたはここで説明するように、あなたのプロジェクトは、現在のビルド構成に応じてweb.configファイルに自分のドメインを書くことができ、あなたに公開されます複数の環境をお持ちの場合:

Using different Web.config in development and production environment

+0

あなたの答えをありがとう。結局私は別の検証方法を使いました。とにかくこれを私に考えさせるために2つのことを教えてくれたので、私はこれを答えとして受け入れました。ありがとうございます –

+1

私は助けてくれてありがとう! – Cossintan

関連する問題