Member 13531690 Ответов: 3

Как отправить электронное письмо от .Сетевое приложение для outlook с большим объемом текстовых данных /


Электронная почта - это большой объем данных на 5-6 страницах , с маркерами, заголовками и таблицами. Кроме заголовков , данные генерируются случайным образом .Сетевое приложение . Может кто-нибудь подсказать, что именно .Класс NEt поддерживает прием больших данных в качестве параметра тела.

Что я уже пробовал:

I have tried with  sp_send_dbmail , but  seems it accept html format input as a body from .NEt application. As per the requirement, the body is not static to send as a big string.

3 Ответов

Рейтинг:
28

ZurdoDev

Отправка электронных писем через C# очень проста. См. эту ссылку для примера: Как отправить электронное письмо из C#[^]

система.Net namespace-это то, что вам нужно.


Рейтинг:
18

MadMyche

System.Net.Mail-это пространство имен для отправки электронной почты.

Само письмо содержится в классе MailMessage.
Текст сообщения электронной почты имеет тип string.
Длина строки имеет тип int, из которых максимальное значение составляет 2,147,483,647
Неоднозначный термин "страница" приравнивается примерно к 500 словам или 3000 символам.
Это примерно 715 тысяч страниц.


Рейтинг:
1

Member 13531690

Я следую ниже моему решению,
Брандмауэр моей компании ограничивает отправку электронных писем .Сетевое приложение, все параметры SMTP-сервера были настроены в SQL server. Поэтому я использую данных msdb.Sp_dbmail.
И я отправляю тело почты в формате HTML.
Ниже код работает хорошо.

<pre>  SqlConnection connLMSSQL01 = new SqlConnection("Data Source=AAA;Initial Catalog=BBB;Persist Security Info=True;User ID=CCC;Password=***");
        SqlCommand cmdValidateUser;


<pre lang="c#">
private void button2_Click(object sender, EventArgs e)
     {
         StringBuilder HtmlMessageBody = new StringBuilder();
         HtmlMessageBody.Append("<html><body> ");
         HtmlMessageBody.Append("<p> <h1>Welcome ! </h1> <br> <br> </p> ");

         HtmlMessageBody.Append("</body></html>");
         SendEmail(HtmlMessageBody.ToString());
     }

<pre> public void SendEmail(string HtmlMessageBody)
        {
            cmdValidateUser = new SqlCommand();
            cmdValidateUser.CommandText = "SendEmail";
            cmdValidateUser.CommandType = CommandType.StoredProcedure;
            cmdValidateUser.Connection = connLMSSQL01;
            connLMSSQL01.Open();
            cmdValidateUser.Parameters.Add("@HtmlMessageBody", SqlDbType.VarChar, 800000);
            cmdValidateUser.Parameters["@HtmlMessageBody"].Value = HtmlMessageBody;
            cmdValidateUser.ExecuteNonQuery();
            cmdValidateUser.Dispose();
            connLMSSQL01.Close();

            MessageBox.Show("Mail Sent");
        }


<pre>CREATE PROCEDURE [dbo].[SendEmail](@HtmlMessageBody   varchar (MAX) )

  AS
  BEGIN

EXEC msdb.dbo.sp_send_dbmail 
@recipients='XXX@gmail.com',
@subject = 'Send Email- HTML Body',
@body = @HtmlMessageBody,
@body_format = 'HTML' 

END