如何使用PowerShell发送电子邮件

时间:2016-04-01 11:32:37

标签: powershell

我在这里需要一些建议.. 我想从powershell发送电子邮件 所以我使用这个命令

$EmailFrom = “customer@yahoo.com”
$EmailTo = “receiver@ymail.com”  
$Subject = “today date”
$Body = “TODAY SYSTEM DATE=01/04/2016  SYSTEM TIME=11:32:05.50”
$SMTPServer = "smtp.mail.yahoo.com”
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)   
$SMTPClient.EnableSsl = $true    
$SMTPClient.Credentials = New-Object 
System.Net.NetworkCredential(“customer@yahoo.com”, “password”)    
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

这个命令它不适用于雅虎邮件和Outlook邮件,但适用于我的Gmail。 我做错了什么?

4 个答案:

答案 0 :(得分:22)

以下代码段对我来说非常有用:

    WebView wv = (WebView) findViewById(R.id.webView);
    wv.setWebViewClient(new MyBrowser());
    String url = "http://somesites.com";
    wv.getSettings().setLoadsImagesAutomatically(true);
    wv.getSettings().setJavaScriptEnabled(true);
    wv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    wv.loadUrl(url);

答案 1 :(得分:7)

我用这个:

Send-MailMessage -To hi@abc.com -from hi2@abc.com -Subject 'hi' -SmtpServer 10.1.1.1

答案 2 :(得分:1)

您只需使用Gmail smtp。

以下是用于发送带有附件的gmail消息的powershell代码:

    $Message = new-object Net.Mail.MailMessage 
    $smtp = new-object Net.Mail.SmtpClient("smtp.gmail.com", 587) 
    $smtp.Credentials = New-Object System.Net.NetworkCredential("From@gmail.com", "password"); 
    $smtp.EnableSsl = $true 
    $smtp.Timeout = 400000  
    $Message.From = "From@gmail.com" 
    $Message.To.Add("To@gmail.com") 
    $Message.Attachments.Add("C:\foo\attach.txt") 
    $smtp.Send($Message)

在发送者Google帐户(From@gmail.com)上,

确保您已为不太安全的应用打开了访问选项, 从google帐户安全信息中心访问。

最后,将此脚本另存为mail.ps1

要调用上述脚本简单程序,请在命令提示符或批处理文件中运行以下命令:

    Powershell.exe -executionpolicy remotesigned -File mail.ps1

默认情况下,发送大型附件的超时时间约为100秒左右。 在此脚本中,它增加到大约5或6分钟

答案 3 :(得分:-1)

有时您可能需要将EnableSs1设置为false