2014-11-20 1 views
1

Не могу понять, почему этот код не работает. Сообщение об ошибке Операции истеклаОтправить e-mail с помощью C#

SmtpClient client = new SmtpClient("smtp.ipage.com", 465); 
client.EnableSsl = true; 

client.Timeout = 50000; 
client.DeliveryMethod = SmtpDeliveryMethod.Network; 
client.UseDefaultCredentials = false; 
client.Credentials = new NetworkCredential(email, password); 
MailMessage msg = new MailMessage(); 
msg.To.Add(txtTo.Text.Trim()); 
msg.From = new MailAddress(email); 
msg.Subject = txtSubject.Text.Trim(); 
msg.Body = txtMsg.Text.Trim(); 
//txtAttachment.Text = fileName.ToString(); 
Attachment attachment = new Attachment(txtAttachment.Text); 
msg.Attachments.Add(attachment); 
client.Send(msg); 
MessageBox.Show("Successfuly sent Message."); 
clear(); 
+0

У вас есть правильные SMTP-адреса и порт? –

+0

Да, безопасность подключения - SSL \ TLS. thunderbird отправляет письма oki ... но код не работает. –

+0

попробуйте вместо этого использовать IP-адрес, DNS может работать некорректно. – Ckrempp

ответ

0

Вы можете получить нулевую ссылку Exception при добавлении «To» адреса электронной почты. Возможно, вам потребуется инициализировать «Кому» MailAddressCollection.

msg.To = new MailAddressCollection(); 
msg.To.Add(txtTo.Text.Trim()); 

так же есть полезная информация here на StackOverflow об отправке SmtpClient.EnableSSL = истинные сообщения, используя определенные порты.

Смежные вопросы