发送系统生成的邮件时用C#格式化邮件正文

发送系统生成的邮件时用C#格式化邮件正文,c#,email,visual-studio-2012,C#,Email,Visual Studio 2012,我正在尝试从c#发送电子邮件,问题是当我的正文中的iam格式设置似乎不起作用时,我需要使用此换行符的任何解决方案,我还需要在邮件正文中创建表。下面是我的代码,其中body1是我的电子邮件内容的主体 var fromAddress = new MailAddress("something@gmail.com", "Name"); const string fromPassword = "pwd123"; const string subject =

我正在尝试从c#发送电子邮件,问题是当我的正文中的iam格式设置
似乎不起作用时,我需要使用此换行符的任何解决方案,我还需要在邮件正文中创建表。下面是我的代码,其中body1是我的电子邮件内容的主体

        var fromAddress = new MailAddress("something@gmail.com", "Name");

        const string fromPassword = "pwd123";
        const string subject = "System generated test mail ";
        string email = bind_email(analyst);

       string body1 = "Hi " + analyst.ToString();
        body1 = body1 + "<br/>";
        body1 = body1 + " This is system generated test mail for " + Session["TaskAssigned"].ToString();
        body1 = body1 + " To be competed before" + Session["Enddate"].ToString() + "<br/><br/> ";

       var smtp = new SmtpClient
        {
            Host = "smtp.gmail.com",
            Port = 587,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
        };
        using (var message = new MailMessage()
        {
            From = fromAddress,
            Subject = subject,
            Body = body1,
        })

        {
            message.To.Add(email);                
            smtp.Send(message);
        }
var fromAddress=新邮件地址(“something@gmail.com“,”姓名“);
const string fromPassword=“pwd123”;
const string subject=“系统生成的测试邮件”;
字符串电子邮件=绑定电子邮件(分析师);
字符串body1=“Hi”+analyst.ToString();
body1=body1+“
”; body1=body1+“这是系统为“+会话[“任务分配”]生成的测试邮件。ToString(); body1=body1+“将在“+会话[“Enddate”]之前竞争。ToString()+”

”; var smtp=新SmtpClient { Host=“smtp.gmail.com”, 端口=587, EnableSsl=true, DeliveryMethod=SmtpDeliveryMethod.Network, UseDefaultCredentials=false, 凭据=新网络凭据(fromAddress.Address,fromPassword) }; 使用(var message=new MailMessage() { From=fromAddress, 主语, Body=body1, }) { message.To.Add(电子邮件); smtp.Send(message); }
必须在邮件消息设置中设置IsBodyHtml=true

mailMessage = new MailMessage()
                    {
                        From = new MailAddress(senderAddress),
                        Subject = subject,
                        Body = message,
                        IsBodyHtml = true
                    };
在消息中使用html标记而不是纯文本


希望这有帮助。

您的问题是您没有将MailMessage.IsBodyHtml指定为true。您可以使用真正的html格式化您的身体

我曾经格式化我从html生成的电子邮件。首先创建一个test.html:

    <html>
        <body>
            <p>
                Hi #analyst#
                <br/>
                This is a system generated test mail for #task_assigned# to be completed before #enddate# 
                <br/>
                <br/>
            </p>

        </body>
    </html>

您是否将isHtml=设置为真?
var fromAddress = new MailAddress("something@gmail.com", "Name");

const string fromPassword = "pwd123";
const string subject = "System generated test mail ";
string email = bind_email(analyst);

System.IO.StreamReader sr = new System.IO.StreamReader(Server.MapPath("~/App_Data/test.html"));
string body1 = sr.ReadToEnd();
body1 = body1.Replace("#analyst#", analyst.ToString());
body1 = body1.Replace("#task_assigned#", Session["TaskAssigned"].ToString());
body1 = body1.Replace("#enddate#", Session["Enddate"].ToString());

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage()
{
    From = fromAddress,
    Subject = subject,
    Body = body1,
    IsBodyHtml = true
})

{
    message.To.Add(email);                
    smtp.Send(message);
}

Hope this helps