c#邮件脚本在HTML内容上失败

时间:2010-02-26 15:08:34

标签: c# email smtp

我正在整理一个脚本,将预览html邮件发送到hotmail等,并且我使用了现有的脚本 - 我是c#的新手,所以这也是一个很好的学习经历。

问题是我做了一些修改,而且我将HTML源代码放入评论框就好了 - 然后它就失败了发送。

我已经调查过并尝试更改新的MailMessage();到新的MailDefinition();并添加faqMsg.IsBodyHtml = true;但它仍然失败。它只适用于普通文本。有什么想法我需要研究一下吗?

SmtpClient smtpCli = new SmtpClient("localhost");
MailMessage faqMsg = new MailMessage();
//MailDefinition faqMsg = new MailDefinition();

//faqMsg.BodyFileName = "email.htm";  
//faqMsg.IsBodyHtml = true;
faqMsg.From = new MailAddress("");
faqMsg.To.Add("");
faqMsg.Subject = "Mail test :" + subject.Text;

//Plain Text part
AlternateView plainView = AlternateView.CreateAlternateViewFromString("Enquiry Type:" + enquirytype.SelectedValue + "\r\nFrom:" + "\r\nEmail:" + email.Text + "\r\n\r\nComments\r\n" + comments.Text + "\r\n[EOF]", null, "text/plain");
//HTML part

AlternateView htmlView = AlternateView.CreateAlternateViewFromString("<strong>Enquiry Type:</strong>" + enquirytype.SelectedValue + "<br><br><strong>Email:</strong>" + email.Text + "<br><br><hr><br><strong>Comments</strong><br>" + HttpUtility.HtmlEncode(comments.Text) + "<br>EOF", null, "text/html");
faqMsg.AlternateViews.Add(plainView);
faqMsg.AlternateViews.Add(htmlView);

//Add Header Markers
faqMsg.Headers.Add("X-Company", "");
faqMsg.Headers.Add("X-Location", "");
faqMsg.Headers.Add("X-Brand", "");

smtpCli.Send(faqMsg);
lbReport.Text = "Your Message was Sent";
//Response.Redirect("email-thanks.aspx");

2 个答案:

答案 0 :(得分:0)

嘿,你得到了什么错误?

查看代码,您可能需要在带有\ inside的任何字符串之前添加@符号。但这是一个没有错误的猜测。

答案 1 :(得分:0)

如果没有您所看到的确切异常文本,我将会对此进行一次尝试。

这听起来不像电子邮件错误。

这听起来像是一般错误,不允许您将HTML内容输入文本框。

请确保页面顶部VaildateRequest=false属性中的@Page