SPUtility.SendEmail() com anexo (arquivos .ics)
Pergunta
Enviamos o email do SharePoint usando o método SPUtility.SendEmail().Mas agora preciso anexar vários arquivos .ics (solicitações de reunião do Outlook) a este e-mail.
Só tenho uma opção, preciso usar apenas o método SPUtility.Como podemos alcançar esse objetivo?
Solução
Não há possibilidade de enviar anexos através deste método.Mas você pode usar SPAdministrationWebApplication para obter os detalhes do servidor SMTP.
Aqui está o código de exemplo:
//Get the Sharepoint SMTP information from the SPAdministrationWebApplication
string smtpServer = SPAdministrationWebApplication.Local.OutboundMailServiceInstance
.Server.Address;
string smtpFrom = SPAdministrationWebApplication.Local.OutboundMailSenderAddress;
//Create the mail message and supply it with from and to info
MailMessage mailMessage = new MailMessage(smtpFrom, insert_receiver);
//Set the subject and body of the message
mailMessage.Subject = insert_subject;
mailMessage.Body = insert_body;
//Download the content of the file with a WebClient
WebClient webClient = new WebClient();
//Supply the WebClient with the network credentials of our user
webClient.Credentials = CredentialCache.DefaultNetworkCredentials;
//Download the byte array of the file
byte[] data = webClient.DownloadData(insert_ attachment_url);
//Dump the byte array in a memory stream because
//we can write it to our attachment
MemoryStream memoryStreamOfFile = new MemoryStream(data);
//Add the attachment
mailMessage.Attachments.Add(new System.Net.Mail.Attachment(memoryStreamOfFile, insert_filename_attachment, insert_content_type));
//Create the SMTP client object and send the message
SmtpClient smtpClient = new SmtpClient(smtpServer);
smtpClient.Send(mailMessage);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange