sudhakarthikeyan Ответов: 1

Я пробовал несколько раз но в mail excel файл не получал почту


Мой код выглядит следующим образом

    int count = 0;
            string connectionstring = "Server=(local);initial catalog=Test;Trusted_Connection=True";
SqlConnection sqlConnection = new SqlConnection(connectionstring);
           SqlCommand cmd = new SqlCommand();
           SqlDataReader reader;
           DataSet ds = new DataSet();
           cmd.CommandText = "select * from Empdetails";
           cmd.CommandText += " where shifttype  = @par ";
           cmd.Parameters.Add("@par", SqlDbType.Int).Value = j;
           cmd.CommandType = CommandType.Text;
           cmd.Connection = sqlConnection;
           sqlConnection.Open();
           reader = cmd.ExecuteReader();

   if (reader.HasRows)
            {
                System.IO.StreamWriter sw_In = new System.IO.StreamWriter(@"C:\Users\God\Desktop\DataDump\" + j + "Excel.xls");

 while (reader.Read())
                {
                    if (count == 0)
                    {
                        for (int i = 0; i < reader.FieldCount; i++)
                        {
    MailMessage mis = new MailMessage();
                            SmtpClient smtpserver = new SmtpClient("smtp.gmail.com");
                            smtpserver.Credentials = new System.Net.NetworkCredential("emailaddress@example.com","<password>");
    smtpserver.Host = "smtp.gmail.com";
                            smtpserver.Port = 587;
                            smtpserver.EnableSsl = true;
                            mis.From = new MailAddress("rajesh@gmail.com", "Report");
                            mis.IsBodyHtml = true;
                            mis.To.Add("rajesh@gmail.com");
                            mis.CC.Add(new MailAddress("rajesh@gmail.com"));
                            mis.Subject = "Data Dump Report";
                            smtpserver.Send(mis);
                            sw_In.AutoFlush = true;
                            sw_In.Write(reader.GetName(i) + "\t");
                        }
                        sw_In.Write("\n");
                        count = 1;
                    }
                        for (int i = 0; i < reader.FieldCount; i++)
                    {
                        sw_In.AutoFlush = true;
                        sw_In.Write(reader[i].ToString() + "\t");
                    }
                    sw_In.Write("\n");
                }
            }
            sqlConnection.Close();
            reader.Close();


на рабочем столе под именем папки дампа данных будет загружен файл excel.

я отправляю этот файл excel по почте.

для этой отправки почты я написал код выше.


Код функции почты выглядит следующим образом

  MailMessage mis = new MailMessage();
                            SmtpClient smtpserver = new SmtpClient("smtp.gmail.com");
                            smtpserver.Credentials = new System.Net.NetworkCredential("rajesh@gmail.com","12345");
    smtpserver.Host = "smtp.gmail.com";
                            smtpserver.Port = 587;
                            smtpserver.EnableSsl = true;
                            mis.From = new MailAddress("rajesh@gmail.com", "Report");
                            mis.IsBodyHtml = true;
                            mis.To.Add("rajesh@gmail.com");
                            mis.CC.Add(new MailAddress("rajesh@gmail.com"));
                            mis.Subject = "Data Dump Report";
                            smtpserver.Send(mis);

</ore>
but when i run the above code, in mail i getting only subject as Data Dump Report.

The excel file is i am not getting in mail.

please help me what is the mistake in my above code

What I have tried:

i tried several times to send  excel file to mail using c#

When i run the above code, in mail i getting only subject as Data Dump Report.

The excel file is i am not getting in mail.

please help me what is the mistake in my above code

Afzaal Ahmad Zeeshan

Не делитесь электронной почтой или возможной комбинацией паролей в интернете. Используйте пример текста, как это сделал я, тестировщики будут вводить свои собственные учетные данные для тестирования кода. Это только разоблачит вас перед спамерами или хакерами.

1 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

В коде, который вы показываете,

MailMessage mis = new MailMessage();
                            SmtpClient smtpserver = new SmtpClient("smtp.gmail.com");
                            smtpserver.Credentials = new System.Net.NetworkCredential("rajesh@gmail.com","12345");
    smtpserver.Host = "smtp.gmail.com";
                            smtpserver.Port = 587;
                            smtpserver.EnableSsl = true;
                            mis.From = new MailAddress("rajesh@gmail.com", "Report");
                            mis.IsBodyHtml = true;
                            mis.To.Add("rajesh@gmail.com");
                            mis.CC.Add(new MailAddress("rajesh@gmail.com"));
                            mis.Subject = "Data Dump Report";
                            smtpserver.Send(mis);

Куда именно вы прикрепляете файл Excel? Во-вторых,
Цитата:
когда я запускаю вышеприведенный код, в Почте я получаю только тему как отчет о дампе данных.
Где именно вы добавляете что-нибудь, кроме темы? Тело отсутствует, привязанности отсутствуют, и именно поэтому вы не получаете ничего, кроме этого.

Начните с добавления следующих строк,
mis.Body = "<p>This email contains attachment for an Excel spreadsheet.</p>";
mis.Attachments.Add(new Attachment("C:\Path\To\ExcelFile.xls"));

// Send this.

Наконец, письмо будет отправлено с использованием основного содержимого и вложений, прикрепленных к письму.

Для получения дополнительной информации, пожалуйста, прочтите:
Конструктор Вложений (Строка) (System. Net. Mail)[^]
Почтовое сообщение.Система Вложения Имущества (.Нет.Почта)[^]