Powershell à l'Aide d'un .fichier htm dans le corps d'un e-mail
Je suis en train d'écrire un script powershell qui sera lancé par une tâche planifiée, le script va renvoyer les détails de nos sauvegardes de base de données, enregistrez-les à un .fichier htm et aussi par courriel les résultats.
Mesure d'obtenir la sauvegarde de l'info et de l'économie pour une .fichier htm fonctionne très bien, mais je ne peux pas comprendre comment obtenir le corps de l'email à ressembler à de la .fichier htm. Le corps de l'email au moment ressemble le code html brut.
Jusqu'à présent:
$a = "<style>"
$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$a = $a + "TH{border-width: 1px;padding: 10px;border-style: solid;border-color: black;}"
$a = $a + "TD{border-width: 1px;padding: 10px;border-style: solid;border-color: black;}"
$a = $a + "</style>"
$date = ( get-date ).ToString('yyyyMMdd')
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
$s = New-Object ('Microsoft.SqlServer.Management.Smo.Server') "LOCALHOST\SQLX64"
$dbs=$s.Databases
#Retrieves the last backup dates - both for FULL and LOG backups
$backups = $dbs | SELECT Name,LastBackupDate, LastLogBackupDate | ConvertTo-HTML -head $a -body "<H2>Database Backup Details $date </H2>" | Out-File $("D:\SQL Backup Log Script\Logs\"+ $date +"_DB01 Backup Log.htm")
$EmailFrom = "IT@##.net"
$emailto = "##@##.net"
$Subject = "DB01 SQL Backup Log"
$Body = Get-Content ("D:\SQL Backup Log Script\Logs\"+ $date +"_Backup Log.htm")
$SMTPServer = "smtp.gmail.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("##", "##");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
Grâce,
Charlotte.
Vous devez vous connecter pour publier un commentaire.
Essayez d'ajouter cette ligne avant la méthode send ():
MODIFIER après le commentaire:
Vous devez utiliser cet objet:
$SMTPClient = New-Object System.Net.Mail.MailMessage
collectées toutes les réponses en un seul morceau:
Essayez d'utiliser le Envoyez-MailMessage applet de commande au lieu de cela, ce qui vous permet de spécifier le
-BodyAsHtml
paramètre:Sinon, vous devrez utiliser le SmtpClient.Envoyer(MailMessage) plutôt la méthode et créer un MailMessage objet où vous pouvez définir les MailMessage.IsBodyHtml propriété: