Wysyłanie wiadomości email z załącznikami przez Sharepoint [Sharepoint / C#]
Opublikowano: 2019-08-27 , wyświetlono: 3507
Sharepoint nie pozwala na wysyłanie wiadomości z załącznikami. Trzeba użyć do tego celu jakiegoś konta smtp. Poniżej metoda, która wysyła wiadomość zawartą w obiekcie MailMessage (System.Net.Mail).
Oczywiście dokonałem skrótów, ale mam nadzieję, że jasno przedstawiłem sposób w jaki można wykonać działanie opisane w tytule.
Oczywiście dokonałem skrótów, ale mam nadzieję, że jasno przedstawiłem sposób w jaki można wykonać działanie opisane w tytule.
public string SendMailMessage(MailMessage mail)
{
string errorMessage = "";
if (_config.GetSmtpHost() == "")
return (errorMessage);
SPSecurity.RunWithElevatedPrivileges(delegate ()
{
try
{
mail.From = new MailAddress(_config.GetSmtpFrom());
mail.ReplyToList.Add(_config.GetSmtpReply());
SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = _config.GetSmtpHost();
smtpClient.Port = _config.GetSmtpPort();
if (_config.GetSmtpAnonymous())
{
smtpClient.UseDefaultCredentials = false;
}
else
{
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential(_config.GetSmtpUser(), _config.GetSmtpPassword());
}
smtpClient.Send(mail);
}
catch (Exception e)
{
errorMessage = e.Message;
}
});
return (errorMessage);
}
I kod, który wykorzystuje ta metodę
List<SPFile?> resources = dal.LoadFiles(); // zaladowanie obiektow SPFile - zalaczniki elementow listy
MailMessage mail = new MailMessage();
try
{
mail.Body = message.Message;
mail.IsBodyHtml = true;
mail.Subject = "Emasil z zalacznikami";
mail.To.Add(new MailAddress(@"chinasoft@chhinasoft.com.pl"));
foreach (Resource r in resources)
{
try { mail.Attachments.Add(new Attachment(r.OpenBinaryStream(), r.Name)); }
catch { }
}
manager.SendMailMessage(mail);
}
catch (Exception e)
{
}