2015-04-10 7 views
0

Я пытаюсь отправить почту с помощью powershell, используя gmail smtp server. Вот мой фрагмент кода.Тайм-аут Powershell при отправке электронной почты

$sender = "[email protected]" 
$recipient = "[email protected]" 
$subject = "test" 
$body = "test text" 
$username = "[email protected]" 
$password = "password" 

$sc = new-object Net.Mail.SmtpClient("smtp.gmail.com", 465); 
$sc.EnableSsl = $true; 
$cred = New-Object System.Net.NetworkCredential($username,$password); 
$sc.Credentials = $cred; 
$emsg = new-Object System.Net.Mail.MailMessage($sender, $recipient, $subject, $body); 
$sc.Timeout = 180000 
$sc.Send($emsg); 

Everytime I Получать тайм-аут, даже если я установил значение тайм-аута до 3 минут (180 секунд). Точнее, ошибка

Exception calling "Send" with "1" argument(s): "The operation has timed out." 
At line:15 char:1 
+ $sc.Send($emsg); 
+ ~~~~~~~~~~~~~~~ 
+ CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
+ FullyQualifiedErrorId : SmtpException 

У кого-нибудь испытал этот вопрос раньше? Любые предложения или идеи будут действительно оценены.

+1

Код на самом деле не Powershell, который вы используете .net-классы, Powershell имеет send-mailmessage http://ss64.com/ps/send-mailmessage.html Попробуйте это - возможно, это не поможет, но я думаю это способ Powershell. –

+0

Тайм-ауты обычно означают, что есть проблема, связанная с сетью. Попробуйте выполнить ping или подключиться через telnet или другой smtp-клиент к тому же хосту. – n3wjack

ответ

Смежные вопросы