将变量传递给powershell中的电子邮件收件人字段

时间:2014-10-25 23:07:27

标签: powershell

我正在尝试将变量从下拉列表传递给电子邮件收件人。  这是下拉列表的脚本:

$objListBox = New-Object System.Windows.Forms.ListBox 
$objListBox.Location = New-Object System.Drawing.Size(30,90) 
$objListBox.Size = New-Object System.Drawing.Size(260,20) 
$objListBox.Height = 80

[void] $objListBox.Items.Add("Rod@tafe.gov.au")
[void] $objListBox.Items.Add("James@msn.com")
[void] $objListBox.Items.Add("Josh@abc.net")
[void] $objListBox.Items.Add("Logan@cba.com")
[void] $objListBox.Items.Add("George@tafe.gov.nsw")
[void] $objListBox.Items.Add("Nic@someone.com")
[void] $objListBox.Items.Add("Shit@box.com")

$ourForm.Controls.Add($objListBox) 

$ourForm.Topmost = $True

$ourForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()
$mailto

这是发送电子邮件的脚本:

send-mailmessage -To '$MailTo' -From 'arivergod@msn.com' `
                 -Body 'ItIsDone, He is sleeping with the Fish' `
                 -Subject 'Contract' -SMTP 'arivergod@msn.com'

1 个答案:

答案 0 :(得分:0)

尝试将ShowDialog()调用更改为:

if ($objForm.ShowDialog() -eq [Windows.Forms.DialogResult]::OK)
{
    $mailto = $objListBox.SelectedValue
}

另外,您不能单独引用变量,例如'$mailTo'。 PowerShell中的单引号就像C#中的逐字字符串。作为To参数的值传递的内容是字面$MailTo。改为:

 send-mailmessage -To $mailTo -From arivergod@msn.com `
                  -Body 'ItIsDone, He is sleeping with the Fish' `
                  -Subject Contract -SMTP arivergod@msn.com

另请注意,默认情况下PowerShell通常会将参数作为字符串处理,除非它们以$ @(,;或{。开头。如果在字符串参数中有空格,嵌入式引号或分号,则还需要引用它。< / p>