L'envoi d'e-mail au format HTML

J'ai un fichier texte output.txt qui a contenu suivant:

OPERATINGSYSTEM     PROJECTSERVER1   PROJECTSERVER2
Windows                       1.36             4.42
Linux12                       2.78             5.76
MacOS                         3.45             6.39
Ubuntu                        4.12             0.00
Android                       0.00             3.46
FreePhysicalMemory           30.12            31.65
TotalVisibleMemorySize       48.00            48.00
CPULoadPercentage                2                4

Je veux envoyer le contenu de output.txt dans un email comme un corps au format HTML apparence de la table dans Windows server 2008 R2. Je suis en train d'essayer avec code ci-dessous, mais sa ne marche pas pour moi ... où suis-je en prenant en dessous ?

$smtpServer = "[email protected]"
$smtpFrom = "[email protected]"
$smtpTo = "[email protected]"
$messageSubject = "Servers Memory"

$message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto
$message.Subject = $messageSubject
$message.IsBodyHTML = $true

$message.Body = Get-Content C:\Logs\output.txt
$style = "< style>BODY{font-family: Arial; font-size: 10pt;}"
$style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}"
$style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }"
$style = $style + "TD{border: 1px solid black; padding: 5px; }"
$style = $style + "< /style>"

$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($message)

EDIT1

Quand j'ai modifié mon code comme ci-dessous:

$smtpServer = "[email protected]"
$smtpFrom = "[email protected]"
$smtpTo = "[email protected]"
$messageSubject = "Servers Memory"

$message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto
$message.Subject = $messageSubject
$message.IsBodyHTML = $true

$style = "<style>BODY{font-family: Arial; font-size: 10pt;}"
$style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}"
$style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }"
$style = $style + "TD{border: 1px solid black; padding: 5px; }"
$style = $style + "</style>"
$message.Body = "<head><pre>$style</pre></head>"
$message.Body += Get-Content C:\Logs\output.txt

$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($message)

Je reçois des mail comme ceci:

OPERATING SYSTEM SERVER1 SERVER2 Windows 1.36 4.42 Linux 2.78 5.76 MacOS 3.45 6.39 Android 0.00 3.46 Ubuntu 4.12 0.00 FreePhysicalMemory 30.12 31.65 TotalVisibleMemorySize 48.00 48.00 

Note: je suis à l'aide de Powershell v1.0

  • 1. "Pas de travail" de quelle manière? Le plus vous êtes précis, plus il est probable que quelqu'un sera en mesure d'identifier le problème. 2. Quelles sont vos intentions concernant $style? Vous êtes à la définition de sa valeur à tout un tas de code CSS, mais alors vous n'êtes pas de faire quelque chose avec elle. Il semble qu'il devrait être quelque chose comme $message.Body = '<head>' + $style + '</head>' + $message.Body entre le dernier $style = [...] déclaration et le $smtp = [...] déclaration. 3. output.txt ne contient pas le HTML. Il devrait avoir HTML les données de la table, sinon la mise en forme sera tout faux. C'est que ce "pas de travail"?
InformationsquelleAutor Sunny | 2013-10-29