网站建设与开发课程介绍,腕表手表网站,wordpress增加阅读,网络规划设计师考试内容有哪些.Net Core中使用是sqlserver的邮件发送功能准备需求启用SQL Server的电子邮件功能检查和测试在.net Core中调用在sqlsrver的管理中有一个数据库邮件功能,再此可以使用sqlserver来自动发送一些邮件,但是有一些需要插入附件的邮件则需要使用程序代码来解决,下面就是使用C#来调用s…
.Net Core中使用是sqlserver的邮件发送功能准备需求启用SQL Server的电子邮件功能检查和测试在.net Core中调用在sqlsrver的管理中有一个数据库邮件功能,再此可以使用sqlserver来自动发送一些邮件,但是有一些需要插入附件的邮件则需要使用程序代码来解决,下面就是使用C#来调用sqlserver的邮件发送功能的方法.准备需求 SQL Server 数据库 版本不限  Visual Stuail 版本不限  smtp服务器和账号密码 如果没有可以使用QQ邮箱的smtp服务器,具体配置看这篇文章Java邮件发送  
启用SQL Server的电子邮件功能 在使用sqlserver的电子邮件发送功能之前,先确保在sqlserver中已经启用了电子邮件功能,可以使用以下命令查询: SELECT * FROM sys.configurations WHERE name  Database Mail XPs如果返回结果为0,则需要启用电子邮件功能.可以使用以下命令启用: sp_configure show advanced options, 1
GO
RECONFIGURE
GO
sp_configure Database Mail XPs, 1
GO
RECONFIGURE
GO创建一个SMTP配置文件以用于电子邮件发送.可以使用一下命令创建SMTP配置文件 EXECUTE msdb.dbo.sysmail_add_account_spaccount_name  MyEmailAccount,email_address  myemailexample.com,display_name  My Name,mailserver_name  smtp.example.com,port  25, -- 或者其他端口号username  myusername,password  mypassword,use_default_credentials  0 -- 如果SMTP服务器需要身份验证请将此设置为0	请注意如果SMTP服务器需要身份验证请提供username和password参数。  创建一个电子邮件配置文件.可以使用一下命令创建: EXECUTE msdb.dbo.sysmail_add_profile_sp
profile_name  MyEmailProfile,
description  My Email Profile将SMTP配置文件添加到电子邮件配置文件中。可以使用以下命令将SMTP配置文件添加到电子邮件配置文件中 EXECUTE msdb.dbo.sysmail_add_profileaccount_spprofile_name  MyEmailProfile,account_name  MyEmailAccount,sequence_number  1	检查和测试 
如果已经完成以上步骤则运行以下语句: 
SELECT name FROM msdb.dbo.sysmail_profile;此查询将返回所有已定义的电子邮件配置文件的名称。如果未定义任何配置文件则将返回空结果集。 如果您没有在SQL Server中配置电子邮件则不会看到任何结果。要配置电子邮件请使用SQL Server Management Studio或SQL Server Management Objects (SMO)等工具或者参考Microsoft官方文档以了解如何配置电子邮件。 使用如下语句调用发送邮件的功能 
EXCE msdb.dbo.sp_send_dbmailprofile_name ,  -- 一个字符串值,表示要使用的电子邮件配置文件的名称.必需recipients , --字符串,收件人地址,多个地址用;分隔.必需subject , --字符串,邮件主题.必需body , -- 字符串,邮件正文.必需file_attachments , --字符串,附件文件的路径(sqlserver所在服务器的绝对路径),多个文件用分号分隔.可选query , -- 字符串,表示在邮件正文中包含的SQL查询.可选execute_query_database , -- 字符串,执行查询的数据库名称.可选attach_query_result_as_file 0, -- bit类型值,表示是否将查询结果作为附件附加到邮件中.如果为1,则必须指定query和execute_query_database参数.可选query_result_width 256, -- 整数,表示查询结果作为附件添加到邮件中时列的宽度,默认256.可选query_result_width , --字符串,表示查询结果作为附件添加到邮件中时列的分隔符.默认制表符.可选exclude_query_output , -- 一个bit类型的值表示是否从邮件正文中排除查询结果。默认为0。可选参数。mail_priority , -- 一个整数值表示邮件的优先级。可以是1最低3普通或5最高。默认为3。可选参数。mail_body_format , -- 一个字符串值表示邮件正文的格式。可以是TEXT或HTML。默认为TEXT。可选参数。 
在.net Core中调用 
实际原理很简单,就是使用数据库服务来调用sp_send_dbmail这个存储过程. 
using System.Data.SqlClient;public void SendEmail()
{string connectionString  Data Sourceserver_name;Initial Catalogdatabase_name;User IDuser_name;Passwordpassword;string recipient  recipientexample.com;string subject  Test Email;string body  This is a test email.;using (SqlConnection connection  new SqlConnection(connectionString)){SqlCommand command  new SqlCommand();command.Connection  connection;command.CommandType  System.Data.CommandType.StoredProcedure;command.CommandText  msdb.dbo.sp_send_dbmail;command.Parameters.Add(profile_name, System.Data.SqlDbType.VarChar, 128).Value  MyEmailProfile;command.Parameters.Add(recipients, System.Data.SqlDbType.VarChar, -1).Value  recipient;command.Parameters.Add(subject, System.Data.SqlDbType.VarChar, 255).Value  subject;command.Parameters.Add(body, System.Data.SqlDbType.VarChar, -1).Value  body;connection.Open();command.ExecuteNonQuery();}
}