CID#

CID es una forma especial de insertar imágenes u otros archivos multimedia directamente en el cuerpo del correo, para que se muestren de inmediato, sin necesidad de descargarlos por separado.

  1. En el correo, las imágenes se insertan a través de la etiqueta <img src='cid:ID_unico'>.
  2. El ID único (Content-ID) vincula la imagen con esta etiqueta.
  3. En la base de datos se almacenan estos ID y las propias imágenes.
  4. Al mostrar el correo, el programa busca las imágenes por estos ID y las muestra.

Esta construcción funciona para páginas web, sin embargo, Outlook puede no mostrar estas imágenes. Esto es especialmente relevante para Office 2019.

Configuración de conexión a 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"

Creación del correo#

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

Adición de un archivo adjunto con ContentId#

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

Envío del correo#

$email.SendAndSaveCopy()