none
Exchange Powershell 发送邮件的格式能否为html RRS feed

  • 问题

  • HI 工程师您好,

        请问Exchange Powershell 发送邮件的代码,我应该怎么去处理以下脚本。目前此脚本发送的邮件格式为纯文本,我想把它改成html和输出的结果为表格模式,请问我该如何做?

      

    import-csv c:\file\12.csv|%{
    $From = "administrator@xx.com"
         $To = "test01@xx.com"
         $Subject = "AD用户和邮箱已创建" 
         $Body = "您好,新用户创建已创建如下:

    OWA地址:https://mail.xx.com/owa

    ecp地址:https://mail.xx.com/ecp

    "
         $smtpServer = "10.33"
         $smtpPort = 25
         $username = "test01@xx.com"
         $password = "1234"
         $SMTPMessage = New-Object System.Net.Mail.MailMessage($From, $To, $Subject, $Body)
         $SMTPClient = New-Object Net.Mail.SmtpClient($smtpServer, $SmtpPort) 
         $SMTPClient.EnableSsl = $false 
         $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($username, $password); 
         $SMTPClient.Send($SMTPMessage)

      }

    期待您的回复!

    2021年9月6日 6:50

答案

  • #密码过期提醒发送邮件
    
    #定义邮件服务器
    $smtpServer = "mail.xx.com"
    $smtpUser = "user@xx.com"
    $smtpPassword = "password"
    $mail = New-Object System.Net.Mail.MailMessage
    
    #定义发件人邮箱地址、收件人邮箱地址
    $MailAddress="user@xx.com"
    $mail.From = New-Object System.Net.Mail.MailAddress($MailAddress)
    $mail.IsBodyHtml = $True #定义为HTML格式邮件
    
    #定义邮件标题、优先级和正文
    $mail.Subject = "提醒:";
    $mail.Priority  = "High"
    $smtp = New-Object System.Net.Mail.SmtpClient -argumentList $smtpServer,587 #使用587端口
    $smtp.Enablessl = $true  #使用TLS加密
    $smtp.Credentials = New-Object System.Net.NetworkCredential -argumentList $smtpUser,$smtpPassword
    
    $MailtoAddress="xx@xx.com"
    $mail.To.Add($MailtoAddress)
    $mail.Body = "<html><body><span style='font-size:10.5pt;font-family:宋体'>
    您好,
    <br><br>      您的帐号 密码将会于9天后过期。请尽快修改!
    <br><br>        修改方法:。
    <br><br><br> <img  width=146 height=52 alt="""" src=""http://img.xx.com/logo.png"" />
    <br>-----------------------------------------
    <br>这封邮件由管理程序自动生成,请勿直接回复!
    </span></body></html>"
    $smtp.Send($mail)
    请参考上述代码,具体HTML的样式如果不是很熟悉,可以直接在Word中编辑好另存为HTML再贴进来

    如果以上回复对您有所帮助,建议您将其标记为答复。谢谢!

    2021年9月7日 2:43

全部回复

  • 您好,

    如果您使用Telnet发送邮件,您可以在正文中加入“Content-Type: text/html”来说明邮件是html格式:

    Data
    Content-Type: text/html
    Subject: test
    <h1>This is HTML</h1>
    .

    如果您使用的是Send-MailMessage命令,您可以使用-BodyAsHtml参数来说明邮件的格式。

    关于如何用HTML源码来表达表格,这您或许需要使用相关的工具来进行转换。

    此致,

    Kyle Xu


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2021年9月6日 8:21
    版主
  • #密码过期提醒发送邮件
    
    #定义邮件服务器
    $smtpServer = "mail.xx.com"
    $smtpUser = "user@xx.com"
    $smtpPassword = "password"
    $mail = New-Object System.Net.Mail.MailMessage
    
    #定义发件人邮箱地址、收件人邮箱地址
    $MailAddress="user@xx.com"
    $mail.From = New-Object System.Net.Mail.MailAddress($MailAddress)
    $mail.IsBodyHtml = $True #定义为HTML格式邮件
    
    #定义邮件标题、优先级和正文
    $mail.Subject = "提醒:";
    $mail.Priority  = "High"
    $smtp = New-Object System.Net.Mail.SmtpClient -argumentList $smtpServer,587 #使用587端口
    $smtp.Enablessl = $true  #使用TLS加密
    $smtp.Credentials = New-Object System.Net.NetworkCredential -argumentList $smtpUser,$smtpPassword
    
    $MailtoAddress="xx@xx.com"
    $mail.To.Add($MailtoAddress)
    $mail.Body = "<html><body><span style='font-size:10.5pt;font-family:宋体'>
    您好,
    <br><br>      您的帐号 密码将会于9天后过期。请尽快修改!
    <br><br>        修改方法:。
    <br><br><br> <img  width=146 height=52 alt="""" src=""http://img.xx.com/logo.png"" />
    <br>-----------------------------------------
    <br>这封邮件由管理程序自动生成,请勿直接回复!
    </span></body></html>"
    $smtp.Send($mail)
    请参考上述代码,具体HTML的样式如果不是很熟悉,可以直接在Word中编辑好另存为HTML再贴进来

    如果以上回复对您有所帮助,建议您将其标记为答复。谢谢!

    2021年9月7日 2:43