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