2013-03-27 96 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