« powrót

Wysyłanie wiadomości email z załącznikami przez Sharepoint [Sharepoint / C#]

Opublikowano: 2019-08-27 , wyświetlono: 1252

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.


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)
{
}


Komentarze: