C# 在列表框中逐行读取文件
我曾尝试创建自己的电子邮件发件人,但现在我已发布命令逐行执行邮件列表。我现在的代码是C# 在列表框中逐行读取文件,c#,C#,我曾尝试创建自己的电子邮件发件人,但现在我已发布命令逐行执行邮件列表。我现在的代码是 foreach (string emails in listBoxEmails.Items) { mail.From.Add(new MailboxAddress(textBoxSendName.Text, textBoxSendFrom.Text)); mail.To.Add(new MailboxAddress(emails)); client.Send(mail); T
foreach (string emails in listBoxEmails.Items)
{
mail.From.Add(new MailboxAddress(textBoxSendName.Text, textBoxSendFrom.Text));
mail.To.Add(new MailboxAddress(emails));
client.Send(mail);
Thread.Sleep(1000);
}
我希望该程序像这样运行,在我成功发送列表的第一封邮件后,它将发送第二封邮件。但是从我从谷歌获得的代码来看,它会直接将所有电子邮件一起发送。你应该编写一个类似于返回true或false的方法
foreach (string email in listBoxEmails.Items)
{
if (!sendMail(textBoxSendName.Text, textBoxSendFrom.Text, email)){
break;
}
}
private bool sendMail(string name, string from, string to)
{
try
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.????.???");
mail.From = new MailAddress(from, name, Encoding.UTF8);
mail.To.Add(to);
mail.Subject = "Test Mail";
mail.Body = "This is for testing...";
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
return false;
}
}
为什么不让
Send
返回bool
值(如果Send
成功与否)并检查它<代码>如果(!client.Send(mail))中断代码>@DmitryBychenko:若客户机是SmtpClient,那个么Send方法返回void。也许最好检查是否有异常。我已经尝试过了,但结果是一样的。它直接发送到所有的电子邮件列表。我想让它像成功发送第一行之后,它将发送第二行。对于每行邮件的行数,使用line++发送每行邮件,但我仍然无法得到逻辑。顺便说一句,我很抱歉我的英语不好。我认为你的成功标准是邮件到达收件人,对吗?