2014-10-30 3 views
0

Я хочу отправить электронное письмо текущему пользователю при нажатии кнопки. Я получил на текущий адрес электронной почты пользователя с этой строки кода и храню его в переменной:Программная отправка электронной почты текущему пользователю

SPContext.Current.Web.CurrentUser.Email 

Но я теперь ищет лучший способ, чтобы отправить письмо этому пользователю, через Outlook, ... Может кто-нибудь предоставить мне лучшие практики, которые они испытали в этой области?

ответ

1

Лучший способ отправить письмо программным способом - использовать 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

+0

Да, это может работать с Outlook. Чтобы использовать Outlook, вы должны использовать IP-адрес сервера Exchange. Порт был бы полезен, но если вы подключаетесь по IP, без него сервер должен работать правильно. – Ckrempp

-1

После того, как вы можете получить по электронной почте, в SharePoint, вы можете использовать функцию SharePoint SPUtility.SendEmail для отправки электронной почты. Дополнительная информация о функции http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.sendemail.aspx

Также убедитесь, что настройки исходящей электронной почты настроены правильно.

Смежные вопросы