代码之家  ›  专栏  ›  技术社区  ›  JSkyS

从查询结果中获取电子邮件后,如何发送到多个电子邮件?

  •  0
  • JSkyS  · 技术社区  · 7 年前

    我有一个表,每个记录都有一个电子邮件地址和日期。我需要通过表进行查询,如果日期小于一天,则需要发送到与该记录关联的电子邮件地址。

    我设置了用于测试的电子邮件发送,但一直未能检索到所需的信息并发送到多个地址。查询的每一行都有一个电子邮件地址,需要将其添加到收件人列表中。有人能帮忙吗?

    这是我目前掌握的密码。

    我已经尝试了if语句,如果为true,则发送从记录检索电子邮件并添加到收件人列表

    $Username = "moc";
    $Password = "xxxxxx";
    
    function Send-ToEmail([string]$email){
    
        $message = new-object Net.Mail.MailMessage;
        $message.From = "moc@company.com";
        $message.To.Add($email);
        $message.Subject = "New Items Item Request";
        $message.Body = "You have new items in the Request App";
    
        $smtp = new-object Net.Mail.SmtpClient("hq", "host");
        $smtp.EnableSSL = $false;
        $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
        $smtp.send($message);
        write-host "Mail Sent" ; 
     }
    Send-ToEmail  -email  "test@market.com","test@market.com";
    

    再次,我已经能够发送带有上述代码的电子邮件到一个测试电子邮件地址,但我很难从每一行检索地址并将它们添加到收件人列表中。

    0 回复  |  直到 7 年前
        1
  •  1
  •   zdan    7 年前

    首先,修改函数签名以接受电子邮件地址数组:

    function Send-ToEmail([string[]]$emailAddresses){
    

    然后要添加,请遍历所有这些地址,添加每个地址:

    $emailAddresses | foreach {$message.To.Add($_)}
    
    推荐文章