2017-01-20 4 views
0
using System; 
using System.Web.UI.WebControls; 
using System.Net.Mail; 
using System.Net; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
namespace WebApplication1 
{ 

    public partial class BatchEmail : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
     } 
     protected void Button1_Click(object sender, EventArgs e) 
     { 
      foreach (GridViewRow item in GridView1.Rows) 
      { 
       string Email_Address = item.Cells[1].Text.Trim(); 
       MailMessage msg = new MailMessage(); 
       msg.From = new MailAddress("[email protected]"); 
       msg.To.Add(Email_Address); 
       msg.Subject = TextBox1.Text; 
       msg.Body = TextBox2.Text; 
       SmtpClient smt = new SmtpClient("smtp.gmail.com", 587); 
       smt.Credentials = new System.Net.NetworkCredential("[email protected]", "mypass"); 
       smt.EnableSsl = true; 
       smt.Send(msg); 
      } 
     } 
    } 
} 

Пользователь не получает письмо, а Visual Studio не показывает никаких ошибок? Что я сделал не так?Почта не принимается пользователем

+1

отправьте электронное письмо себе и узнайте, получаете ли вы его. Если да, то ваш код работает. Тогда проблема может заключаться в том, что она отправляется в папку нежелательных сообщений получателей или почтовый сервер получателей блокирует ее. Там может быть много причин, но начать там. – CodingYoshi

+0

Я пытался отправить почту, но почта не получает. Что мне делать? –

+0

Попробуйте поймать метод 'Send' и посмотрите, что такое исключение:' try {smt.Send (msg)} catch (Exception ex) {var ex2 = ex; // Посмотрим, что такое проблемы} ' – CodingYoshi

ответ

0

Я думаю, что речь идет о ваших настройках gmail. Нажмите here и выберите «Открыть». Затем повторите попытку.

+0

Я попытался настроить gmail по этой ссылке, но почта не получает. Скажите мне другие варианты, чтобы сделать это правильно. –

0

Попробуйте добавить эти строки:

smt.DeliveryMethod = SmtpDeliveryMethod.Network; 
smt.UseDefaultCredentials = false; 
+0

Это не работает. Скажите мне другие варианты. –

0

При использовании .trim(), он не может видеть правильные адреса электронной почты для отправки или может быть пустым. Добавьте свой проект в точку останова и сообщите нам, что он говорит, когда вы его используете. Вы можете использовать эти коды;

try 
     { 
      foreach (GridViewRow item in GridView1.Rows) 
      { 
      string Email_Address = item.Cells[1].Text.Trim(); 
      MailMessage msg = new MailMessage(); 
      msg.IsBodyHtml = true; 
      msg.From = new MailAddress("[email protected]"); 
      msg.To.Add(Email_Address); 
      msg.Subject = TextBox1.Text; 
      msg.Body = TextBox2.Text; 
      SmtpClient smt = new SmtpClient("smtp.gmail.com", 587); 
      smt.Credentials = new 
      System.Net.NetworkCredential("[email protected]", "mypass"); 
      smt.EnableSsl = true; 
     try 
      { 
      smt.Send(msg); 
      } 

      catch (Exception ex) 
       { 
       throw new Exception(ex.Message.ToString()); 
       } 
      } 
     } 
     catch (Exception ex) 
     { 

      throw new Exception(ex.Message.ToString()); 
     } 
+0

Не было никакого шоу-шоу. Но почта не получала. –

+2

Пробовал использовать контрольную точку ..? Вы будете просто следовать за параметрами шаг за шагом, чтобы увидеть, что все значения верны или даже не имеют ошибки исключения. –

+0

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