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

时间:2014-10-30 21:19:19

标签: vb.net visual-studio sharepoint

我想在点击按钮时向当前用户发送电子邮件。我已经使用这行代码获得了当前用户电子邮件,并将其存储在变量中:

SPContext.Current.Web.CurrentUser.Email

但我现在正在寻找通过Outlook向该用户发送电子邮件的最佳方式......任何人都可以向我提供他们在该领域经历过的最佳实践吗?

2 个答案:

答案 0 :(得分:1)

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

Imports System.Net.Mail
Imports System.Net

' You need a MailAddress for both to and from
Dim addresses As MailAddress = New MailAddress("SomeEmail@gmail.com")

' 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("YourGmailAccount@gmail.com", "YourPassword")
messanger.EnableSsl = True

messanger.Send(message)

所以它的工作方式是这样的。首先,您必须确定谁正在发送消息并接收消息。正如你所看到的那样,我只是把它做成了同样的电子邮件,这对于测试来说很有用:

  

“SomeEmail@gmail.com”

然后您必须创建包含主题行和正文的消息。您可以将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("YourGmailAccount@gmail.com", "YourPassword")
messanger.EnableSsl = True

配置SMTPClient时需要注意几点。首先,您需要使用确切的主机名,并为要建立的连接更正端口。其次,根据SMTP服务器的不同,您可能需要提供服务器的凭据才能接受您的请求。最后,您必须为gmail消息打开SSL加密。

最后,一旦您生成了所有正确的项目并关联了正确的信息,您就可以使用SMTPClient发送消息,如下所示:

messanger.Send(message)

此外,您需要这两个命名空间才能使代码正常工作:

Imports System.Net.Mail
Imports System.Net

答案 1 :(得分:-1)

在SharePoint中,您可以使用SharePoint函数SPUtility.SendEmail发送电子邮件。有关函数http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.sendemail.aspx

的更多信息

还要确保正确配置了外发电子邮件设置。