C# “发送邮件”不会在实时站点上发送到外部,将仅在visual studio调试模式下工作

C# “发送邮件”不会在实时站点上发送到外部,将仅在visual studio调试模式下工作,c#,email,iis,visual-studio-2012,C#,Email,Iis,Visual Studio 2012,我有一个奇怪的问题,我的发送邮件功能没有向外部收件人发送电子邮件。所以我在VisualStudio中调试了这个应用程序,设置了一些断点,它确实发送了电子邮件,我收到了它们 那么现在我该如何调试它为什么不能在实时站点上工作,而它是在调试模式下工作的呢 这是我的发送代码 MailMessage mail = new MailMessage(); mail.From = new MailAddress("internaladdress@domain.com")); foreach (var Suppl

我有一个奇怪的问题,我的发送邮件功能没有向外部收件人发送电子邮件。所以我在VisualStudio中调试了这个应用程序,设置了一些断点,它确实发送了电子邮件,我收到了它们

那么现在我该如何调试它为什么不能在实时站点上工作,而它是在调试模式下工作的呢

这是我的发送代码

MailMessage mail = new MailMessage();
mail.From = new MailAddress("internaladdress@domain.com"));
foreach (var Supplier in tblRequest.GroupBy(r => r.SupplierID).OrderBy(g => g.First().tblSuppliers.Supplier))
{
    //mail.Bcc.Add(new MailAddress(Supplier.First().tblSuppliers.EmailAddress));
}
mail.Bcc.Add(new MailAddress("externaladdress@outlook.com"));
mail.Bcc.Add(new MailAddress("internaladdress@domain.com"));
mail.ReplyToList.Add(new MailAddress("internaladdress@domain.com"));
mail.IsBodyHtml = true;
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
SmtpClient client = new SmtpClient();
var SMTPCredentials = new System.Net.NetworkCredential("DOMAIN\\USER", "Password");
client.Credentials = SMTPCredentials;
client.Port = 25;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Host = "IP ADDRESS OF MAIL SERVER";
mail.Subject = "IS" + intEmailQuoteID.ToString("D5") + " Quote";
//mail.Body += "<html>";
//mail.Body += "<head>";
//mail.Body += "<title></title>";
mail.Body += "<style>body {font-family:calibri;} table {border-collapse:collapse;} table, th, td {border: 1px solid black; padding:10px;}</style>";
//mail.Body += "</head>";
//mail.Body += "<body>";
mail.Body += "<p>Could you please provide us with prices for the below? Any questions please reply to this email address.</p>";
if (tblRequest.First().tblQuotes.EmailNotes != "")
    mail.Body += "<p>" + tblRequest.First().tblQuotes.EmailNotes + "</p>";
mail.Body +="<p>Thank You</p>";
mail.Body += "<table style='width:700px'>";
mail.Body += "<tr>";
mail.Body += "<td style='background:#CCC;'>Quote Reference No:</td>";
mail.Body += "<td>IS" + intEmailQuoteID.ToString("D5") + "</td>";
mail.Body += "<td style='background:#CCC;'>Orginator:</td>";
mail.Body += "<td>" + helpers.GetUserName(tblRequest.First().tblQuotes.OriginatorID) + "</td>";
mail.Body += "<td style='background:#CCC;'>Request Date:</td>";
mail.Body += "<td>" + tblRequest.First().tblQuotes.RequestDate.ToString("dd/MM/yyyy") + "</td>";
mail.Body += "</tr>";
mail.Body += "</table>";
mail.Body += "<br />";
mail.Body += "<table style='width:700px'>";
mail.Body += "<thead>";
mail.Body += "<tr>";
mail.Body += "<th>Quantity</th>";
mail.Body += "<th>Item</th>";
mail.Body += "<th>Part No</th>";
mail.Body += "<th>Description</th>";
mail.Body += "</tr>";
mail.Body += "</thead>";
mail.Body += "<tbody>";
foreach (var mailItem in tblRequest.GroupBy(r => r.ItemID).OrderBy(g => g.First().tblItems.Name))
{
    mail.Body += "<tr>";
    mail.Body += "<td>" + mailItem.First().Quantity + "</td>";
    mail.Body += "<td>" + mailItem.First().tblItems.Name + "</td>";
    mail.Body += "<td>" + mailItem.First().tblItems.PartNo + "</td>";
    mail.Body += "<td>" + mailItem.First().tblItems.Description + "</td>";
    mail.Body += "</tr>";
}
mail.Body += "</tbody>";
mail.Body += "</table>";
//mail.Body += "</body>";
//mail.Body += "</html>";
try
{
    client.Send(mail);
}
catch(Exception ex)
{
    ViewBag.Errors = ex.ToString();
}
MailMessage mail=newmailmessage();
mail.From=新邮件地址(“internaladdress@domain.com"));
foreach(tblRequest.GroupBy(r=>r.SupplierID).OrderBy(g=>g.First().tblSuppliers.Supplier)中的var供应商)
{
//mail.Bcc.Add(新邮件地址(Supplier.First().tblSuppliers.EmailAddress));
}
mail.Bcc.Add(新邮件地址(“externaladdress@outlook.com"));
mail.Bcc.Add(新邮件地址(“internaladdress@domain.com"));
mail.ReplyToList.Add(新邮件地址(“internaladdress@domain.com"));
mail.IsBodyHtml=true;
mail.DeliveryNotificationOptions=DeliveryNotificationOptions.OnSuccess;
SmtpClient=新的SmtpClient();
var SMTPCredentials=new System.Net.NetworkCredential(“域\\用户”,“密码”);
client.Credentials=SMTPCredentials;
客户端端口=25;
client.DeliveryMethod=SmtpDeliveryMethod.Network;
client.Host=“邮件服务器的IP地址”;
mail.Subject=“IS”+intEmailQuoteID.ToString(“D5”)+“Quote”;
//mail.Body+=“”;
//mail.Body+=“”;
//mail.Body+=“”;
Body+=“Body{font-family:calibri;}table{border-collapse:collapse;}table,th,td{border:1px纯黑色;padding:10px;}”;
//mail.Body+=“”;
//mail.Body+=“”;
mail.Body+=“您能为我们提供以下产品的价格吗?如有任何问题,请回复此电子邮件地址。

”; if(tblRequest.First().tblQuotes.EmailNotes!=“”) mail.Body+=“”+tblRequest.First().tblQuotes.EmailNotes+”

”; mail.Body+=“谢谢你”

”; mail.Body+=“”; mail.Body+=“”; 邮件正文+=“报价参考号:”; Body+=“是”+intEmailQuoteID.ToString(“D5”)+”; mail.Body+=“组织者:”; mail.Body+=“”+helpers.GetUserName(tblRequest.First().tblQuotes.originorid)+“”; mail.Body+=“请求日期:”; mail.Body+=“”+tblRequest.First().tblQuotes.RequestDate.ToString(“dd/MM/yyyy”)+“”; mail.Body+=“”; mail.Body+=“”; mail.Body+=“
”; mail.Body+=“”; mail.Body+=“”; mail.Body+=“”; 邮件正文+=“数量”; mail.Body+=“项目”; 邮件正文+=“零件号”; mail.Body+=“Description”; mail.Body+=“”; mail.Body+=“”; mail.Body+=“”; foreach(tblRequest.GroupBy(r=>r.ItemID).OrderBy(g=>g.First().tblItems.Name)中的var mailItem) { mail.Body+=“”; mail.Body+=“”+mailItem.First().Quantity+“”; mail.Body+=“”+mailItem.First().tblItems.Name+“”; mail.Body+=“”+mailItem.First().tblItems.PartNo+“”; mail.Body+=“”+mailItem.First().tblItems.Description+“”; mail.Body+=“”; } mail.Body+=“”; mail.Body+=“”; //mail.Body+=“”; //mail.Body+=“”; 尝试 { 客户端。发送(邮件); } 捕获(例外情况除外) { ViewBag.Errors=ex.ToString(); }
此外,内部邮件在调试和现场(以及交付通知)中都会收到,我只收到内部邮件,外部邮件则什么也没有


谢谢

如果它不适用于外部,则可能是电子邮件服务器配置问题。抱歉,这是一个内部应用程序,因此两个测试中我都是内部的,失败的测试在Web服务器上,有效的测试在我的主机上调试。那么,它不是发送到
externaladdress@outlook.com
?正确(虽然外部地址实际上是我的outlook地址),但在调试过程中,它会同时发送到两个地址,在内部站点上,它只在内部发送此内部地址和outlook外部地址是什么?我不确定。当我的
from
add没有发送电子邮件的权限时,我遇到了类似的问题。请与网络管理员联系。