我写这篇文章是为了问程序中非常奇怪的问题。
该程序的目的是收集信息和发送电子邮件给用户。
但是,在HTML代码中,它不会在没有特定单词或内容的情况下发送电子邮件。
请参考下面的信息。
lstReport.Add(“这是一封聚合酶链反应准备电子邮件。请参阅以下内容。谢谢……");
如果我们把这行HTML代码,它将发送电子邮件。但没有这条线
它不会发送电子邮件,没有错误,没有例外,似乎被服务器或防火墙阻塞。
请参考下面的电子邮件设置。
private void SendMail(string fileName, StringBuilder message){
MailMessage mail;
SmtpClient client;
mail = new MailMessage();
mail.From = new MailAddress(FromAddress);
foreach (string to in ToAddress)
{
mail.To.Add(to);
}
mail.Subject = Subject + fileName;
mail.Body = message.ToString();
mail.IsBodyHtml = true;
mail.Priority = MailPriority.High;
client = new SmtpClient(MailServer);
client.Send(mail);
}
如果有人知道这事,请解释给我听。
提前谢谢。
请参阅下面的正文
lstReport.Add("<table><tr><td> This is a PCR Preparation Email. Please Refer to the below Contents. Thanks... </td></tr><tr><td></td></tr></table>");
lstReport.Add("<table border='0'><tr><td style=font-size: 10pt; font-family: Arial;>Number of Blots :");
lstReport.Add(Convert.ToString(blotCount) + "</td></tr><tr height=2><td style=font-size: 10pt; font-family:Arial;> </td></tr><tr><td style=font-size: 10pt; font-family: Arial;>Technician :");
lstReport.Add(dtDiscrepancy.Rows[0]["UserName"].ToString() + " </td></tr><tr height=2><td style=font-size: 10pt; font-family:Arial;> </td></tr><tr><td style=font-size: 10pt; font-family: Arial;>MM LotNumber :");
lstReport.Add(dtDiscrepancy.Rows[0]["LotNumber"].ToString() + " </td></tr><tr height=2><td style=font-size: 10pt; font-family:Arial;> </td></tr><tr><td style=font-size: 10pt; font-family: Arial;>MM Volume :");
lstReport.Add("<tr><td style=font-size: 10pt; font-family: Arial;> </td></tr><tr><td style=font-size: 10pt; font-family: Arial;>Please find below, the details of plates </td></tr> <tr><td style=font-size: 10pt; font-family: Arial;></td></tr><tr><td style=font-size: 10pt; font-family: Arial;>");
lstReport.Add("<table border=1 width=78% cellspacing=0 cellpadding=0><tr><td> </td></tr><tr><td width=13% style=font-size: 10pt; font-family: Arial;><b>PCRBlotName</b></td><td width=13% style=font-size: 10pt; font-family: Arial;><b>PCRPlateName</b></td><td width=13% style=font-size: 10pt; font-family: Arial;><b>DNABlotName</b></td><td width=13% style=font-size: 10pt; font-family: Arial;><b>DNAPlateName</b></td><td width=13% style=font-size: 10pt; font-family: Arial;><b>DNAVolume</b></td><td width=13% style=font-size: 10pt; font-family: Arial;><b>PrimerLocusGroup</b></td><td width=13% style=font-size: 10pt; font-family: Arial;><b>DNAMatch</b></td><td width=13% style=font-size: 10pt; font-family: Arial;><b>PrimerMatch</b></td></tr>");
lstReport.Add(Environment.NewLine);
lstReport.Add(tableHeader);
发布于 2013-11-19 08:49:19
首先,在使用完MailMessage
和SmtpClient
之后,您应该使用它。
using (var mail = new MailMessage())
{
using (var client = new SmtpClient(MailServer))
{
mail.From = new MailAddress(FromAddress);
foreach (string to in ToAddress)
{
mail.To.Add(to);
}
mail.Subject = Subject + fileName;
mail.Body = message.ToString();
mail.IsBodyHtml = true;
client.Send(mail);
}
}
然后删除mail.Priority = MailPriority.High;
,因为它是无用的,而且一些服务器认为它是垃圾邮件。
我可以打赌一只手,你正在发送一个格式错误的html在你的电子邮件正文消息。重复检查它是否有未关闭的标记或未转义的字符.
使用像剪纸这样的应用程序作为smtp服务器来查看电子邮件是否正在发送。
如果您发送的邮件太频繁或没有正确的身份验证,Smtp服务器可能会阻止您的电子邮件。
有很多垃圾邮件过滤器。
https://stackoverflow.com/questions/20076985
复制相似问题