Ранее моя функция SPUtility.SendMail
работала.
Но в последнее время электронное письмо не отправлялось.
Основываясь на нескольких статьях, я попытался установить HttpContext.Current to null before invoking SendMail and change HttpContext.Current back
и использовать elevated rights
. Но они не работали.
try
{
using (var elevatedSite = new SPSite(TestConfig.GetString(TestConfig.Config.SiteUrl).TrimEnd('/')))
{
using (var elevatedWeb = elevatedSite.OpenWeb())
{
var to = new StringBuilder();
foreach (var grp in grpNames)
{
var group = elevatedWeb.SiteGroups[grp];
var groupValue = new SPFieldUserValue(elevatedWeb, group.ID, group.Name);
var inbox = new Inbox
{
Title = String.Format("Report generated@{0}", fileURL),,
};
foreach (SPUser user in group.Users.Cast<SPUser>().Where(usr => !usr.Email.IsNullOrEmpty()))
{
to.AppendFormat("{0},", user.Email);
}
}
bool isSent = SPUtility.SendEmail(elevatedWeb, true, false, "test@mail.com", ...);
}
}
}
catch (Exception ex)
{
ex.PreserveStackTrace();
throw;
}
try-catch
и event viewer
не вернули ошибок.
также проверил отправленный статус isSent
и вернул true
:
Ссылки:
https://social.technet.microsoft.com/Forums/office/en-US/16a62597-6076-4598-9799-dd6ea874156f/cannot-send-mail-using-sputilitysendmail?forum=sharepointadminlegacy
https://sharepoint.stackexchange.com/questions/93979/why-is-httpcontext-current-set-to-null
http://emailfromsharepoint.blogspot.com/2012/04/send-email-from-sharepoint.html