2017-01-05 8 views
1

У меня есть текстовое поле (textBox2), в котором электронная почта: [email protected],[email protected],[email protected],etc..C# Возьмите кусок текста в то время в текстовом поле

У меня есть функция, которая посылает по электронной почте:

private void button1_Click(object sender, EventArgs e) 
{ 
    var mail = new MailMessage(); 
    var smtpServer = new SmtpClient(textBox5.Text); 
    mail.From = new MailAddress(textBox1.Text); 
    mail.To.Add(textBox2.Text); 
    mail.Subject = textBox6.Text; 
    mail.Body = textBox7.Text; 
    mail.IsBodyHtml = checkBox1.Checked; 
    mail.Attachments.Add(new Attachment(textBox9.Text)); 
    var x = int.Parse(textBox8.Text); 
    smtpServer.Port = x; 
    smtpServer.Credentials = new System.Net.NetworkCredential(textBox3.Text, textBox4.Text); 
    smtpServer.EnableSsl = checkBox2.Checked; 
    smtpServer.Send(mail); 
} 

I хотите, чтобы вы отправляли электронное письмо на каждое электронное письмо отдельно. То есть, когда я нажимаю button1, чтобы отправить ему электронное письмо за раз и отправить его по электронной почте, пока вы не закончите. Как я могу сделать?

+0

Что вы имеете в виду под «электронным письмом на каждое электронное письмо отдельно»? Когда в 'textBox2.Text' есть несколько получателей? –

+2

[split] (https://msdn.microsoft.com/en-us/library/b873y76a (v = vs.110) .aspx) строка затем прокручивает элементы в возвращаемом массиве. –

ответ

1

Если вы просто не хотите, чтобы все получатели, чтобы увидеть другие адреса, которые вы могли бы просто использовать скрытую копию вместо

mail.Bcc.Add(textBox2.Text); 

Если вы действительно хотите отправить один и тот же адрес электронной почты несколько раз, вы можете просто разделить адреса в запятой и передать их в код, который у вас уже есть в отдельном методе.

private void button1_Click(object sender, EventArgs e) 
{ 
    foreach(var address in textBox2.Text.Split(",")) 
     SendMessage(address); 
} 

private void SendMessage(string address) 
{ 
    var mail = new MailMessage(); 
    var smtpServer = new SmtpClient(textBox5.Text); 
    mail.From = new MailAddress(textBox1.Text); 
    mail.To.Add(address); 
    mail.Subject = textBox6.Text; 
    mail.Body = textBox7.Text; 
    mail.IsBodyHtml = checkBox1.Checked; 
    mail.Attachments.Add(new Attachment(textBox9.Text)); 
    var x = int.Parse(textBox8.Text); 
    smtpServer.Port = x; 
    smtpServer.Credentials = new System.Net.NetworkCredential(textBox3.Text, textBox4.Text); 
    smtpServer.EnableSsl = checkBox2.Checked; 
    smtpServer.Send(mail); 
} 
+0

Он работает, спасибо вам :) – SquizzyHc

0

Попробуйте этот код:

string emailList = "[email protected],[email protected],[email protected]"; 
string[] emails = emailList.Split(","); // replace this text with your source :) 

foreach(string s in emails) 
{ 
var mail = new MailMessage(); 
      var smtpServer = new SmtpClient(textBox5.Text); 
      mail.From = new MailAddress(textBox1.Text); 
      mail.To.Add(s); 
      mail.Subject = textBox6.Text; 
      mail.Body = textBox7.Text; 
      mail.IsBodyHtml = checkBox1.Checked; 
      mail.Attachments.Add(new Attachment(textBox9.Text)); 
      var x = int.Parse(textBox8.Text); 
      smtpServer.Port = x; 
      smtpServer.Credentials = new System.Net.NetworkCredential(textBox3.Text, textBox4.Text); 
      smtpServer.EnableSsl = checkBox2.Checked; 
      smtpServer.Send(mail); 
}