0

我对 cmdlet 发送邮件消息有一个奇怪的问题。在 powershell 上使用 direclty 时,它工作得很好,但是当我想在脚本上使用它来编辑不同的变量给邮件用户时,邮件无法正确发送。我有这段代码:

$userInfo = $fornamn+" "+$efternamn+" "+$usernm+" "+$pass  
$from = "administrator@"+$ADinfo.dnsroot  
$to = $fornamn+"."+$efternamn+"@cuebid.se"  
$smtpserver = "cb-dc02.cuebid.local"  
$subject = "sys-konto"  
Send-MailMessage $to $subject $userInfo $smtpserver -from $from

$fornamn、$efternamn 和 $pass 是在脚本前面创建的变量,它们都是 String 类型。

使用脚本时,我没有收到任何邮件,但在交换日志中,我可以看到收到了邮件当直接在 powershell 中创建变量并运行 send-mailmessage 时,它​​可以完美运行任何想法为什么?

4

1 回答 1

0

我这里没有这种行为。此外,您可以更优雅地组合字符串变量,因为在双引号中会发生变量替换(注意点前面的反引号):

$userInfo = "$fornamn $efternamn $usernm $pass"
$from = "administrator@"+$ADinfo.dnsroot
$to = "$fornamn`.$efternamn@cuebid.se"
$smtpserver = "cb-dc02.cuebid.local"
$subject = "sys-konto"
Send-MailMessage $to $subject $userInfo $smtpserver -from $from

您确定邮件最终没有被标记为垃圾邮件吗?我知道这似乎不合逻辑,因为从命令行执行时,您说它有效。不过,值得仔细检查。

我唯一能想到的另一件事是,在您的 .ps1 文件中,变量不包含完全相同的值(可能某处的空格太多)。

于 2013-03-29T11:57:18.053 回答