以编程方式发送电子邮件给当前用户

问题描述:

我想通过按钮单击发送电子邮件给当前用户。我已经得到了这一行代码的当前用户的电子邮件和我将它存储在一个变量:以编程方式发送电子邮件给当前用户

SPContext.Current.Web.CurrentUser.Email 

,但我现在正在寻找最好的方式来发送电子邮件到这个用户,通过Outlook ...谁能为我提供他们在这个领域经历的最佳实践?

以编程方式发送电子邮件的最佳方式是使用SMTPClient。我在这里提供了一个例子:

Imports System.Net.Mail 
Imports System.Net 

' You need a MailAddress for both to and from 
Dim addresses As MailAddress = New MailAddress("[email protected]") 

' The structure for MailMessage(from, to) 
Dim message As MailMessage = New MailMessage(addresses, addresses) 

message.Subject = "I have sent you a message from a program!" 
message.Body = "Hello World!" 

Dim messanger As SmtpClient = New SmtpClient("smtp.gmail.com", 587) 

messanger.Credentials = New NetworkCredential("[email protected]", "YourPassword") 
messanger.EnableSsl = True 

messanger.Send(message) 

所以它的工作方式就是这样。首先,您必须确定谁在发送消息并接收消息。正如你可以看到我做到了相同的电子邮件,这是很好的用于测试目的,这样的:

[email protected]

然后,你必须创建一个将消息包含你的主题和主体。您可以插入HTML代码,有很多更一起,进入你的身体,但现在保持简单是这样的:

Dim message As MailMessage = New MailMessage(addresses, addresses) 
message.Subject = "I have sent you a message from a program!" 
message.Body = "Hello World!" 

一旦你完成,你需要创建SMTPClient将消息发送到SMTP服务器,我使用gmail,因为它非常容易如何配置连接:

Dim messanger As SmtpClient = New SmtpClient("smtp.gmail.com", 587) 
messanger.Credentials = New NetworkCredential("[email protected]", "YourPassword") 
messanger.EnableSsl = True 

配置SMTPClient时有几点注意事项。首先,您需要使用确切的主机名称和正确的端口以建立连接。其次,根据SMTP服务器的不同,您可能需要提供服务器的凭据才能接受您的请求。最后,您必须打开SSL加密,才能使用Gmail邮件。

最后,一旦你产生所有正确的项目,以及相关的您能与SMTPClient发送消息,像这样正确的信息:

messanger.Send(message) 

此外,您将需要这两个命名空间工作代码:

Imports System.Net.Mail 
Imports System.Net 
+0

这也可以与Outlook一起工作吗? – programmerGuy 2014-10-30 23:19:31

+0

是的,这可以与Outlook一起使用。要使用Outlook,您应该使用Exchange服务器的IP地址。该端口会很有用,但如果通过IP连接,没有它,服务器应该仍然正常工作。 – Ckrempp 2014-10-31 05:13:14

一旦你能得到的电子邮件,SharePoint中,您可以使用SharePoint功能SPUtility.SendEmail发送电子邮件。有关功能的更多信息http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.sendemail.aspx

另外请确保传出电子邮件设置配置正确。