使用正则表达式验证powershell中的电子邮件地址

时间:2015-08-12 16:30:38

标签: regex email powershell outlook

所以我创建了一个脚本来解析outlook中的.msg文件,并省略了结果。整个脚本工作,除了当我从网络内部收到电子邮件(我们使用Active Directory)时,我得到的结果与此类似:/ O = Business / OU = FIRST ADMINISTRATIVE GROUP / CN = RECIPIENTS / CN = MIKEF 否则对于网络外的电子邮件,我会收到email@email.com。我想用正则表达式对此进行验证,这样就可以使用CN =“”中的名称并将其添加到我的@ email.com

$MSGFILEPATH = '\\srv01\FTP\EmailtoSupportPortal\Testing'
$MSGCOMPLETED= '\\srv01\FTP\EmailtoSupportPortal\Testing\Completed'
Function MSGFiles {
Get-ChildItem $MSGFILEPATH -Filter *.msg|`
ForEach-Object{
    $outlook = New-Object -comobject outlook.application
    $msg = $outlook.CreateItemFromTemplate($_.FullName)
    $body = $msg.Body
    $SEM = $msg.SenderEmailAddress
    $Subject = $msg.Subject 
    $SEM
    }
}
MSGFiles

1 个答案:

答案 0 :(得分:0)

检查MailItem.SenderEmailType属性。如果是" EX",请使用MailItem.Sender.GetExchangeUser.PrimarySmtpAddress(准备处理空值/错误)。 否则,请按照现在的方式使用SenderEmailAddress属性。