我正在整理一个脚本,将预览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");
答案 0 :(得分:0)
查看代码,您可能需要在带有\ inside的任何字符串之前添加@符号。但这是一个没有错误的猜测。
答案 1 :(得分:0)
如果没有您所看到的确切异常文本,我将会对此进行一次尝试。
这听起来不像电子邮件错误。
这听起来像是一般错误,不允许您将HTML内容输入文本框。
请确保页面顶部VaildateRequest=false
属性中的@Page
。