C# 即使我停止进程,smtp代码也会执行
我正在使用以下代码打开一个文本文件,向列出的人发送电子邮件,并将主题更改为包含他们的ID。我遇到的问题是,第一次通过测试时,我在主题行上停止了调试器。接下来我会收到测试邮件。即使我停止了调试器,代码怎么能继续执行 这是我的密码:C# 即使我停止进程,smtp代码也会执行,c#,email,debugging,C#,Email,Debugging,我正在使用以下代码打开一个文本文件,向列出的人发送电子邮件,并将主题更改为包含他们的ID。我遇到的问题是,第一次通过测试时,我在主题行上停止了调试器。接下来我会收到测试邮件。即使我停止了调试器,代码怎么能继续执行 这是我的密码: protected void btnTest_Click(object sender, EventArgs e) { string sFilePath = @"C:\email\" + ddlYear.SelectedItem.Value + "-" +
protected void btnTest_Click(object sender, EventArgs e)
{
string sFilePath = @"C:\email\" + ddlYear.SelectedItem.Value + "-" + ddlMonth.SelectedItem.Value + "_Num.txt";
using (TextFieldParser parser = new TextFieldParser(sFilePath))
{
parser.TextFieldType = FieldType.FixedWidth;
parser.SetFieldWidths(4, -1);
int iRowCnt = 1;
while (!parser.EndOfData)
{
string[] sCurrRow = parser.ReadFields();
try
{
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage("test@test.com", sCurrRow[1].ToString());
message.Subject = txtSubject.Text + " - ID #" + sCurrRow[0].ToString() ;
message.IsBodyHtml = Convert.ToBoolean(ddlFormat.SelectedValue);
message.Body = txtMsg.Text;
System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient();
mailClient.Host = "testSMTP.test.com";
mailClient.Credentials = new System.Net.NetworkCredential("TestSMTP", "TESTING"); //Username and password changes
mailClient.Send(message);
this.InsEmailDB(iRowCnt, iRowCnt, sCurrRow[1].ToString());
iRowCnt++;
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
}
}
停止调试器并不会终止程序,它只是停止“监视”它——程序仍将运行到完成。调试顾名思义就是消除应用程序的错误。它只显示它是如何执行的。停止调试并不意味着停止应用程序。我认为接收测试邮件不是什么大问题。你怎么知道当你停止调试器时,它还没有通过X个人循环,或者知道该邮件不是来自早期测试?我还强烈建议使用
using
关键字来处理SmtpClient(实现IDisposable)。您的意思是在创建mailClient时使用它吗?mailClient是否有dispose属性?谢谢你的回复。如果你担心的话,你应该把执行行(调试器)移到函数的末尾。如果它被发送到不是他自己的帐户,这可能是一件大事。@pennstatephil测试意味着测试。他不应该包括任何可能与他有关的账户。谢谢你的回复。我现在明白了调试并没有阻止流程的完成,这只是让我可以观察流程。我正在使用我自己的电子邮件帐户列表,以避免实际需要发送的电子邮件出现问题。