首页 > 解决方案 > 导入用户和管理员的 csv 文件的最佳方式,然后通过电子邮件向管理员发送用户列表

问题描述

请原谅我违反任何规则。我是一个全新的 StackOverflow 用户,也是一个 powershell 菜鸟。我正在做一个工作项目,在该项目中导入一个包含用户列表及其各自经理的 CSV 文件。然后,我需要创建一封电子邮件,其中包含一个包含每个经理的用户的表格。

我知道如何导入 csv 文件。我已经创建了一个基本的电子邮件发送代码。我完全不知道如何适当地让用户和管理者相互关联。

例如,我的 csv 使用如下标题格式化:

First Name  Last Name  Username   Manager 
Bob         Dole       BDole      Jsmith 
John        Doe        JDoe       Anoob 
Jane        Doe        JDoe1      Jsmith 
etc.

有人可以指出我正确的方向吗?我尝试使用哈希表和数组,但没有成功。这可能是由于我的菜鸟身份。

如果我应该添加更多信息,请告诉我。由于没有任何效果,我目前没有编写任何真正的代码,所以请原谅帖子中非常有限的代码。

$users = import-csv "Path goes here"

"My code for associating the users and managers would go here"

 "Email code goes here"

标签: powershellcsv

解决方案


$users = Import-Csv .\test.csv -Delimiter ";"

$cred = Get-Credential # enter the credentials for your email account

从哪里发送邮件

$users | Group-Object -Property Manager | % {
    $managername = $_.name
    write-host $managername
    $body = $_.group | format-table | ConvertTo-Html
    write-host $body
    Send-MailMessage -to "$managername@some.com" -Body $body -From "yourmail" -SmtpServer "yoursmtpserver" -Port "your smtp port" -Subject "mailsubject" -Credential $cred -BodyAsHtml
}

如果您不想每次都输入您的邮件凭据,您可以将它们保存如下。

get-credential | export-clixml -path "somepath"

稍后您可以从您的操作系统中读取凭据:

$cred = import-clixml -path "somepath"

推荐阅读