0

現在、私は asp.net 文字列から作成している HTML 電子メールを送信しています。リンクは、ハイパーリンクではなくプレーン テキストとして出力されます。これが目的です。電子メール文字列を生成するコードは次のようになります。

 Uri link = new Uri("http://www.somesite.com");

string body = "Plus, you may wish to bookmark " + link + " for your rate comparison needs."

string subject = Resources.Email.VerificationEmailSubject;

Email.SendEmail(email, subject, body);

   public static void SendEmail(string toAddress, string subject, string body)
    {
        try
        {

            MailMessage mailMessage = new MailMessage();
            mailMessage.To.Add(new MailAddress(toAddress));
            mailMessage.Subject = subject;
            mailMessage.IsBodyHtml = true;
            mailMessage.Body = body;

            using (SmtpClient smtpClient = new SmtpClient())
            {
                smtpClient.Send(mailMessage);
            }
        }
        catch (Exception ex)
        {
            LogManager log = new LogManager();
            log.LogError(typeof(Email), ex);
        }
    }

これを行う最も簡単な方法は何ですか?

ありがとう!

編集1:

試した -

string emailContent = "Plus, you may wish to bookmark <a href='" + link + "'>www.comparsave.com</a> for your rate comparison needs.";

電子メール ソースを表示すると、文字列は asp.net によって html エンコードされ、html のプレーン テキストとしてレンダリングされます。< と > は "& gt;" に置き換えられます。"& lt;" など asp.netがこれを行うのを止めるには??

編集2:

わかりました!答えは、時間があるときに後で投稿します。皆さんありがとう!

4

3 に答える 3

3

HTML メールの場合は、次のようにします。

"<a href='" + link + "'>" + link + "</a>"
于 2012-05-30T17:19:31.880 に答える
1

テンプレートを使用して、リンクを挿入します。例えば

const string template = "Plus, you may wish to bookmark <a href='{0}'>{0}</a> for your rate comparison needs."

string htmlEmailBody = String.Format(template, link);
于 2012-05-30T17:22:59.597 に答える
0

解決策は、電子メール テンプレートとして機能する cshtml ファイル内から Html.Raw を使用することでした。何らかの理由で、上記の cs ファイルで Html.Raw を呼び出すことができませんでした。

于 2012-05-30T18:40:18.450 に答える