CID#

CID é uma maneira especial de inserir imagens ou outros arquivos de mídia diretamente no corpo do e-mail, para que sejam exibidos imediatamente, sem a necessidade de baixá-los separadamente.

  1. No e-mail, as imagens são inseridas através da tag <img src='cid:ID_único'>.
  2. O ID único (Content-ID) vincula a imagem a essa tag.
  3. No banco de dados, esses IDs e as próprias imagens são armazenados.
  4. Ao exibir o e-mail, o programa procura as imagens por esses IDs e as mostra.

Essa construção funciona para páginas da web, no entanto, o Outlook pode não exibir essas imagens. Isso é especialmente relevante para o Office 2019.

Configurações de conexão com o Exchange#

$exchangeVersion = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2016 
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService($exchangeVersion) 
$service.Credentials = New-Object System.Net.NetworkCredential($        , $        ) 
$service.Url = "https://        /        /Exchange.asmx"

Criação do e-mail#

$email = New-Object Microsoft.Exchange.WebServices.Data.EmailMessage($service) 
$email.Subject = $subject 
$email.Body = New-Object Microsoft.Exchange.WebServices.Data.MessageBody( 
    [Microsoft.Exchange.WebServices.Data.BodyType]::HTML, 
    "<html><body><p style = `"font-size: 15px; font-family: Calibri;`">${$header}<br>${$link}<br></p><img src='cid:MyImage'>$($        )</body></html>"
)
$emailAddresses = $Row.emails -split ';' | ForEach-Object { $_.Trim() } 
foreach ($address in $emailAddresses) { 
    $email.ToRecipients.Add($address) 
}

Adição de anexo com ContentId#

$filePath = $        
$attachment = $email.Attachments.AddFileAttachment($filePath) 
$attachment.ContentId = "MyImage" 
$attachment.IsInline = $true

Envio do e-mail#

$email.SendAndSaveCopy()