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++发送每行邮件,但我仍然无法得到逻辑。顺便说一句,我很抱歉我的英语不好。我认为你的成功标准是邮件到达收件人,对吗?