从asp.net C发送电子邮件时需要新行#

时间:2014-02-06 15:47:25

标签: c# asp.net

您好我有以下代码行从我的aspx页面发送电子邮件。

protected void Button1_Click(object sender, EventArgs e)
{
    try
    {
        //SmtpClient mail = new SmtpClient();
        System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage();
        mm.From = new MailAddress(txt_email.Text);
        mm.To.Add("excelguesthouse@gmail.com");
        //MailMessage mm=new MailMessage();
        mm.Body = string.Format("{0},{1},{2},{3},{4}", txt_fname.Text, txt_lname.Text, txt_email.Text, txt_phone.Text, txt_details.Text);
        mm.IsBodyHtml = true;
        mm.Subject = cmb_type.Text;
        System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587);
        client.UseDefaultCredentials = false;
        client.Credentials = new System.Net.NetworkCredential("excelguesthouse", "excelhome");
        client.Port = 587;
        client.Host = "smtp.gmail.com";
        client.EnableSsl = true;
        object userstate = mm;
        client.Send(mm);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

我收到的电子邮件很好。

但我希望电子邮件的格式正确,并带有换行符。所以任何人都可以告诉我如何在上面的代码中添加换行符,以显示第二行和第三行中的电子邮件,电话和详细信息值。

5 个答案:

答案 0 :(得分:3)

你已经设置了

mm.IsBodyHtml = true;

只需在您想要换行的部分使用<br />

答案 1 :(得分:3)

如果我理解正确,你想要mm.Body中有断行。 改变这个

mm.Body = string.Format("{0},{1},{2},{3},{4}", txt_fname.Text, txt_lname.Text, txt_email.Text, txt_phone.Text, txt_details.Text);

到此:

mm.Body = string.Format("{0},{1}<br />{2}<br />{3}<br />{4}", txt_fname.Text, txt_lname.Text, txt_email.Text, txt_phone.Text, txt_details.Text);

这将为您提供您的姓/名和电子邮件,电子邮件和电话,电话和详细信息之间的界限

答案 2 :(得分:1)

在Rex的回答指出它是HTML之后编辑。换行不会像HTML那样工作。您需要使用<br />标记。

保存以备将来使用:

在纯文本电子邮件中,您可以在@"Some text"中使用@,但这对string.Format不起作用。相反,我这样做:

string.Format("This is one line{0}This is another {1}", Environment.NewLine, "SomeText");

在字符串中添加NewLine字符。记住你只需要一个!

string.Format("This is one line{0}This is another {1}{0}And another line{0}{0}And some more", Environment.NewLine, "SomeText");

答案 3 :(得分:1)

您指定邮件的正文“IsHtml”,因此请使用HTML!

mm.Body = string.Format("{0} {1} <br /> {2} <br /> {3} <br /> {4}", txt_fname.Text, txt_lname.Text, txt_email.Text, txt_phone.Text, txt_details.Text);

答案 4 :(得分:-1)

尝试将\n\n放在任何想要休息的地方。它对我有用......

示例:

mail.Body = "\n\nHi,\n\n "  + ds.Tables[0].Rows[0][1] + " \n\nsent you a message: " + ds.Tables[0].Rows[0][4] + " \n\nYou can contact me via email:  " + ds.Tables[0].Rows[0][2] + " or\n\nphone:  " + ds.Tables[0].Rows[0][3] + " " ;