2017-03-08 6 views
1

私はC#コードを使用してメールで顧客にアカウントアクティベーションリンクを送信しています。 Amazon SESメールサービスを使用しています。私の顧客の中には、リンクが機能していないとの報告がありました。リンクにダブルドットが追加されています。メール本文に二重ドットが追加されました

リンク1:

https://www.company.com/account/[email protected]gmail..com & hashtoken = 5574asfasfafb37d09aasdfa097

リンク2:

https://wwwcompany..com /account/[email protected] & hashtoken = 5574asfasfafb37d09aasdfa097

リンク3:

https://www.company.com/account/verify?email=customer..name @ gmail.com & hashtokenは= 5574asfasfafb37d09aasdfa097

これらは私が毎回顧客レポートを発見したダブルドットです。私は私のlocalhostを使用してチェックしているとき、すべて正常に動作し、リンクが正しく生成されます。問題はすべての顧客に対して生成されるものではなく、ランダムに生成されます。

注:メールテンプレートに生のURLを追加しています。私はそれをエンコードしていません。私はメールIDだけをエンコードしています。事前

ディネッシュで

string activationLink = ConfigurationManager.AppSettings["hostUrl"].ToString()+ "/account/verify?email=" + HttpUtility.UrlEncode(email) + "&hashtoken=" + hashCode; 

感謝。

+0

は何ですか'email'の価値?例えば –

+0

の場合:string email = "[email protected]"; –

+0

あなたは2つのドットを追加している場所をデバッグする必要がありますが、ここでは一時的な解決策です。 activationLink = activationLink.Replace( ".."、 "。"); – faraaz

答えて

0

おそらくコンテンツのエンコーディングが不適切である...

試してみてください。詳細については

mailMessage.BodyEncoding=System.Text.Encoding.UTF8

、参照してください。

https://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.bodyencoding(v=vs.110).aspx

+2

おそらく... –

+0

UTF8を使ったボディコンテンツのエンコードは、gmail、yahoo、outlookなどのすべてのメールクライアントでサポートされますか? –

関連する問題