我想通過按鈕單擊發送電子郵件給當前用戶。我已經得到了這一行代碼的當前用戶的電子郵件和我將它存儲在一個變量:以編程方式發送電子郵件給當前用戶
SPContext.Current.Web.CurrentUser.Email
,但我現在正在尋找最好的方式來發送電子郵件到這個用戶,通過Outlook ...誰能爲我提供他們在這個領域經歷的最佳實踐?
我想通過按鈕單擊發送電子郵件給當前用戶。我已經得到了這一行代碼的當前用戶的電子郵件和我將它存儲在一個變量:以編程方式發送電子郵件給當前用戶
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)
所以它的工作方式就是這樣。首先,您必須確定誰在發送消息並接收消息。正如你可以看到我做到了相同的電子郵件,這是很好的用於測試目的,這樣的:
然後,你必須創建一個將消息包含你的主題和主體。您可以插入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
一旦你能得到的電子郵件,SharePoint中,您可以使用SharePoint功能SPUtility.SendEmail發送電子郵件。有關功能的更多信息http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.sendemail.aspx
另外請確保傳出電子郵件設置配置正確。
這也可以與Outlook一起工作嗎? – programmerGuy 2014-10-30 23:19:31
是的,這可以與Outlook一起使用。要使用Outlook,您應該使用Exchange服務器的IP地址。該端口會很有用,但如果通過IP連接,沒有它,服務器應該仍然正常工作。 – Ckrempp 2014-10-31 05:13:14