2013-03-27 111 views
0

我的cmdlet send-mailmessage存在一个奇怪的问题。当在powershell上使用direclty时,它完美地工作,但是当我想在脚本上使用它来编辑邮件用户的不同变量时,邮件不会正确发送。 我有这样一段代码:send-mailmessage不能在脚本中工作

$userInfo = $fornamn+" "+$efternamn+" "+$usernm+" "+$pass 
$from = "[email protected]"+$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和$通是较早在脚本中创建的变量和都是String类型。

当使用我不脚本接收任何邮件,但在交换日志,我可以看到邮件收到 当直接在PowerShell中我创建的变量和运行发送,它MAILMESSAGE工作完美无瑕 任何想法,为什么?

+0

无信息什么是$ ADInfo,您如何定义/检索它将很难说出任何内容。另外 - 尝试使用-noexit参数运行脚本,并确保没有错误,如果有 - 它们是什么。 – BartekB 2013-03-27 14:40:02

+0

运行脚本时没有错误。 我通过运行$ ADInfo = Get-ADDomain获得$ ADinfo.dnsroot,但变量$ from是一个字符串,所以行$ from =“administrator @”+ $ ADinfo.dnsroot是一个字符串,它检索域并创建mailaddress – user2215780 2013-03-27 18:14:50

回答

0

我在这里没有这种行为。此外,您还可以更优雅地结合了您的字符串变量,因为在双引号变量替换时(介意反引号在点前):

$userInfo = "$fornamn $efternamn $usernm $pass" 
$from = "[email protected]"+$ADinfo.dnsroot 
$to = "$fornamn`[email protected]" 
$smtpserver = "cb-dc02.cuebid.local" 
$subject = "sys-konto" 
Send-MailMessage $to $subject $userInfo $smtpserver -from $from 

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

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

+0

先生,你是对的,它是在垃圾邮件。我的第一个不好看的地方 感谢您的输入 – user2215780 2013-04-02 12:42:05

+0

没有多少意义,但很高兴你找到了它。你能把这个标记为答案,所以其他人不花时间在这方面? – Joost 2013-04-04 14:38:28