Форум системных администраторов: Send-SmtpMail - Форум системных администраторов

Перейти к содержимому

  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете начинать новые темы
  • Вы не можете отвечать в этой теме

Send-SmtpMail Чета не хочет он работать.... Оценить тему: -----

#1 Пользователь не на сайте   Lexw 

  • PowersHELL Padawan ;-)
  • PipPipPipPipPipPipPip

Отправлено 20 July 2008 - 08:24

Function send-SmtpMail ( $Server = $SmtpHostPreference, # SMTP Сервер
	$From = $SmtpFromPreference, # Адрес отправителя
	[string[]]$To, # Получатели
	$Body = "", # Тело сообщения
	$Subject = "", # Тема сообщения
	[System.IO.FileInfo[]]$Attachment=@() # Вложения
)
{
Write-Verbose "Создаем объекты SmtpClient и MailMessage"
$SmtpClient = New-Object System.Net.Mail.SmtpClient
$Message = New-Object System.Net.Mail.MailMessage
Write-Verbose "Устанавливаем свойства этих объектов"
$SmtpClient.Host = $Server
$Message.Body = $Body
$Message.Subject = $Subject
$Message.From = $From
Write-Verbose "Создаем и добавляем вложения"
$Attachment | ForEach-Object {
	$a = New-Object System.Net.Mail.Attachment($_.fullname)
	$Message.Attachments.Add($a)
}
Write-Verbose "Добавляем получателей"
$To | ForEach-Object {$Message.To.Add($_)}
Write-Verbose "Отправляем сообщение"
$smtpclient.Send($Message)
Write-Verbose "Удаляем объекты"
$Message.Dispose()
}


send-SmtpMail -server smtp.gmail.com -from "uksasu@gmail.com" -to "admintsm@gmail.com" -body "test" -subject "test" -ssl -credentials $cred


Исключение при вызове "Send" с "1" аргументами: "Серверу SMTP требовалось защищенное соединение, или подлинность клиент
а не была установлена. Ответ сервера: 5.7.0 Must issue a STARTTLS command first. f13sm3233090gvd.2"
В строка:25 знак:17
+ $smtpclient.Send( <<<< $Message)


#2 Пользователь не на сайте   Xaegr 

  • PowerShell addict
  • PipPipPipPipPipPipPip

Отправлено 20 July 2008 - 09:10

http://xaegr.wordpre...smtpmailps1_v2/

#3 Пользователь не на сайте   Lexw 

  • PowersHELL Padawan ;-)
  • PipPipPipPipPipPipPip

Отправлено 20 July 2008 - 09:13

И еще вопрос...
Скрипт я хочу засунуть в шелдуллер, чтобы он мне раз в сутки пересылал одни файлик на мыло.
как в этом случае грамотно поступить с логином и паролем от почты?

Просмотреть сообщениеXaegr, 20.7.2008, 12:10, сказал(а):


я отттуда и взял

#4 Пользователь не на сайте   Xaegr 

  • PowerShell addict
  • PipPipPipPipPipPipPip

Отправлено 20 July 2008 - 09:18

Просмотреть сообщениеLexw, 20.7.2008, 10:13, сказал(а):

как в этом случае грамотно поступить с логином и паролем от почты?

Ну лучше IMHO разрешить анонимную отправку с сервера (на что и расчитан первый скрипт), либо можно использовать такой метод: http://xaegr.wordpre...ryptdecryptps1/ достаточно секьюрно - пароль шифруется ключем текущей учетной записи. Но и зашифровывать и расшифровывать надо одной и той же учеткой.

#5 Пользователь не на сайте   Xaegr 

  • PowerShell addict
  • PipPipPipPipPipPipPip

Отправлено 20 July 2008 - 09:34

Просмотреть сообщениеLexw, 20.7.2008, 10:13, сказал(а):

я отттуда и взял


Пофиксил, там к сожалению лежала старая версия :D

#6 Пользователь не на сайте   Xaegr 

  • PowerShell addict
  • PipPipPipPipPipPipPip

Отправлено 21 July 2008 - 12:13

Итак вот решение - http://xaegr.wordpre...il-from-script/

#7 Пользователь не на сайте   feston 

  • Новичок
  • Pip

Отправлено 24 July 2008 - 10:50

а на такую ошибку исключение можно написать
Исключение при вызове "Send" с "1" аргументами: "Почтовый ящик недоступен. Ответ сервера: 5.1.1 <xxx@xxx.ru>... User unknown"


#8 Пользователь не на сайте   Xaegr 

  • PowerShell addict
  • PipPipPipPipPipPipPip

Отправлено 24 July 2008 - 10:51

Просмотреть сообщениеfeston, 24.7.2008, 11:50, сказал(а):

а на такую ошибку исключение можно написать

Можно на всё написать, но зачем? Это всё таки скрипт а не полноценная программа :D Тем более что причину ошибки и так видно.

#9 Пользователь не на сайте   feston 

  • Новичок
  • Pip

Отправлено 24 July 2008 - 11:03

Просмотреть сообщениеXaegr, 24.7.2008, 10:51, сказал(а):

Просмотреть сообщениеfeston, 24.7.2008, 11:50, сказал(а):

а на такую ошибку исключение можно написать

Можно на всё написать, но зачем? Это всё таки скрипт а не полноценная программа :D Тем более что причину ошибки и так видно.

ошибка понятно из-за чего) просто отправляю сообщение группе пользователей половине отправил а дальше из-за этой ошибки недвигается
нашел и сделал такое все работает
trap { Write-Warning "Ошибка!";continue };$SMTPClient.Send($Msg)


#10 Пользователь не на сайте   M a K 

  • начинающий линуксойд
  • PipPipPipPipPip

Отправлено 24 June 2009 - 14:07

Как добавить вот в такой скрип строчку прикрепления вложения?
$sender = "от кого" 
$Recipient = "кому" 
$server = "server" 
$subject = "Сообщение от PowerShell" 
$Body = "сообщение" 

$msg = New-Object System.Net.Mail.MailMessage $sender, $Recipient, $subject, $Body 
$client = New-Object System.Net.Mail.SmtpClient $server
$client.Credentials = New-Object System.Net.NetworkCredential "log", "pass" 
$client.send($msg)


#11 Пользователь не на сайте   Gmur 

  • MSSQL обажатель, PoSh`ляк.
  • PipPipPipPipPipPipPip

Отправлено 24 June 2009 - 14:15

Как то так наверное:
$sender = "от кого" 
$Recipient = "кому" 
$server = "server" 
$subject = "Сообщение от PowerShell" 
$Body = "сообщение" 
$Attachments = "C:\ololo.txt"

$msg = New-Object System.Net.Mail.MailMessage $sender, $Recipient, $subject, $Body, $Attachments
$client = New-Object System.Net.Mail.SmtpClient $server
$client.Credentials = New-Object System.Net.NetworkCredential "log", "pass" 
$client.send($msg)

А вообще смотрите
$msg | Get-Member


#12 Пользователь не на сайте   M a K 

  • начинающий линуксойд
  • PipPipPipPipPip

Отправлено 24 June 2009 - 14:21

Gmur
такой вариант приходил в голову, но не то :D

#13 Пользователь не на сайте   Gmur 

  • MSSQL обажатель, PoSh`ляк.
  • PipPipPipPipPipPipPip

Отправлено 24 June 2009 - 14:24

M a K
А так?
$Attach = new-object System.Net.Mail.Attachment("C:\ololo.txt") 
$SMTPClient = new-object System.Net.Mail.SMTPClient 
$Msg = new-object System.Net.Mail.MailMessage 
$Msg.Attachments.add($Attach) 
$Msg.To.Add("admin@server.ru") 
$Msg.from="server@server.ru" 
$Msg.Subject="Subject" 
$Msg.Body="This is body of E-Mail" 
$SMTPClient.Host="server.ru" 
$SMTPClient.Send($Msg)


#14 Пользователь не на сайте   M a K 

  • начинающий линуксойд
  • PipPipPipPipPip

Отправлено 24 June 2009 - 14:36

а вот так работает.
Спасибо :D

#15 Пользователь не на сайте   M a K 

  • начинающий линуксойд
  • PipPipPipPipPip

Отправлено 24 June 2009 - 15:51

Ещё вопросик: а как в System.Net.Mail.DeliveryNotificationOptions изменить свойство value__ что бы получать уведомления о доставке?

#16 Пользователь не на сайте   Gmur 

  • MSSQL обажатель, PoSh`ляк.
  • PipPipPipPipPipPipPip

Отправлено 24 June 2009 - 16:14

M a K
$Attach = new-object System.Net.Mail.Attachment("C:\ololo.txt") 
$SMTPClient = new-object System.Net.Mail.SMTPClient 
$Msg = new-object System.Net.Mail.MailMessage 
$msg.DeliveryNotificationOptions = 1
$Msg.Attachments.add($Attach) 
$Msg.To.Add("ddd@domain.ru") 
$Msg.from="Ssss@domain.ru" 
$Msg.Subject="Subject" 
$Msg.Body="This is body of E-Mail" 
$SMTPClient.Host="mail.server.ru" 
$SMTPClient.Send($Msg)


#17 Пользователь не на сайте   M a K 

  • начинающий линуксойд
  • PipPipPipPipPip

Отправлено 24 June 2009 - 16:21

$msg.DeliveryNotificationOptions = 1

спасибо.

ппц как я тока не пробовал, но что бы так просто :sob:

#18 Пользователь не на сайте   Gmur 

  • MSSQL обажатель, PoSh`ляк.
  • PipPipPipPipPipPipPip

Отправлено 24 June 2009 - 16:26

Просмотреть сообщениеM a K, 24.6.2009, 17:21, сказал(а):

ппц как я тока не пробовал, но что бы так просто :sob:

а знаете что самое смешное? я PoSh вообще незнаю, ну вот совсем, но я знаю гугель и умею мыслить :D

#19 Пользователь не на сайте   Xaegr 

  • PowerShell addict
  • PipPipPipPipPipPipPip

Отправлено 25 June 2009 - 07:44

Просмотреть сообщениеGmur, 24.6.2009, 17:26, сказал(а):

а знаете что самое смешное? я PoSh вообще незнаю, ну вот совсем, но я знаю гугель и умею мыслить

Кстати версия скрипта с параметром Attachment вот http://xaegr.wordpre...smtpmailps1_v2/ =)

#20 Пользователь не на сайте   Gmur 

  • MSSQL обажатель, PoSh`ляк.
  • PipPipPipPipPipPipPip

Отправлено 25 June 2009 - 08:55

Xaegr
Твой блог к сожалению не на первом месте вылезает в гугле по моим запросам :D

  • (2 Страниц)
  • +
  • 1
  • 2
  • Вы не можете начинать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых