2

「\n」または「<br />」のどちらも機能していません。カスタム フォームの内容をメールで送信するときに、改行を挿入しようとしています。

protected void SubmitBtn_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
        StringBuilder mailBody = new StringBuilder();
        mailBody.Append("Company Name: " + companyText.Text.Trim() + "\n\n");
        mailBody.Append("Name: " + firstNameText.Text.Trim() + " " 
            + lastNameText.Text.Trim() + "\n\n");
        mailBody.Append("Email: " + emailText.Text.Trim() + "\n\n");

        if(!String.IsNullOrEmpty(tradeText.Text))
            mailBody.Append("Trade: " + tradeText.Text.Trim() + "\n\n");

            bool success = SendEmail(emailText.Text.Trim(), 
                companyText.Text.Trim(), "SubContractors Form Submission",
                    mailBody.ToString()); 
    }
}

private bool SendEmail(string email, string name, 
    string subject, string message)
{
    using (MailMessage mail = new MailMessage())
    {
        mail.From = new MailAddress(BlogSettings.Instance.Email, name);
        mail.ReplyTo = new MailAddress(email, name);

        mail.To.Add(BlogSettings.Instance.Email);
        mail.Subject = subject;
        mail.Body += message;

        if (Utils.SendMailMessage(mail).Length > 0)
        {
            return false;
        };
    }
    return true;
}

アップデート:

<br /> 最終的に動作するようになりました。うまくいかなかった理由は、これが連絡先フォームから取得した元のコードだったからです。

mail.Body += message.Replace("\n\n", "<br />");

MailMessage.IsBodyHtmlコア ライブラリ コードで true に設定されています。

4

3 に答える 3

4

以下を使用できます。

于 2012-09-28T18:20:23.197 に答える
1

私はあなたがしていることのために働くべきAppendLineではなく使うことを考えます:Append

StringBuilder mailBody = new StringBuilder();

string company = companyText.Text.Trim();
string firstName = firstNameText.Text.Trim();
string lastName = lastNameText.Text.Trim();
string email = emailText.Text.Trim();
string trade = tradeText.Text.Trim();

mailBody.AppendFormat("Company Name: {0}", company).AppendLine();
mailBody.AppendFormat("Name: {0} {1}", firstName, lastName).AppendLine();
mailBody.AppendFormat("Email: {0}", email).AppendLine();

if(!string.IsNullOrEmpty(trade))
{
    mailBody.AppendFormat("Trade: {0}", trade).AppendLine();
}

bool success = SendEmail(email, company, "SubContractors Form Submission", 
    mailBody.ToString());

AppendFormat()わかりやすくするために追加


.Trim()いくつかのケースで同じテキストの複数のingを排除するために変数を作成しました


AppendFormat().AppendLine()パフォーマンスのためにここで説明されているように適合:StringBuilder.AppendLine / string.FormatとStringBuilder.AppendFormatをいつ使用しますか?

于 2012-09-28T17:58:34.180 に答える
1

を探していEnvironment.NewLineます。

mailBody.Append("Email: " + emailText.Text.Trim() + Environment.NewLine);
于 2012-09-28T17:53:12.440 に答える