|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Отправка email с вложениями из подпапок каталога |
|
PowerShell - Отправка email с вложениями из подпапок каталога
|
Новый участник Сообщения: 6 |
Профиль | Отправить PM | Цитировать Здравствуйте. Хочу настроить отправку email из каталога C:/Mail/ с папками где, в каждой папке файл pdf или xls, который будет вложением в письмо.
Отправлять или средствами PowerShell или скриптом для MailAlert. Адрес получателя могу указать в каждой папке в виде файла с именем example@mail.com. Как сделать перебор папок с выводом в цикле переменных "адрес получателя" и "ссылка на файлы с вложением" или "файл с вложением"? потому что MailAlert может только одно вложение вставлять. После каждого цикла сделать перенос файлов вложений в отдельную одну папку архив. Если в какой-то папке нет файлов pdf и/или xls, то пропустить её. Будут ли проблемы, если папки и/или вложения будут на русском? Можно ли сделать так, чтобы скрипт проверял содержимое файла на наличие определенных слов, например во вложении есть слова "отправитель" и "получатель", а в папке есть файл words.txt, в котором указаны эти 2 слова, как некий параметр и если в содержимом файла нет этих слов, то в лог пишется ошибка и письмо не отправляется, файл не удаляется. Спасибо. |
|
Отправлено: 14:10, 13-01-2021 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать Создайте примерную иерархию каталогов с файлами и выложите сюда в zip.
|
------- Отправлено: 17:46, 13-01-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать E_o, попробуйте описать саму задачу, а не выбранное решение.
|
Отправлено: 19:13, 13-01-2021 | #3 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
|
|
Отправлено: 20:44, 13-01-2021 | #4 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Iska,
Задача: Отправлять письма с вложениями zip, pdf, xls, xlsx, doc, docx из каталога папок по разным адресатам с проверкой в тексте вложения корректности соответствия наименования отправителя и адресата. Документ вложение содержит имена отправителя - он один во всех документах - ГеннадийВВ, и адресата, АннаИЛ или ЗлатаГВ и т.д. в разных папках каталога. Этим именам соответствуют адреса электронной почты в каком-то произвольном документе. Все имена и почта уникальные. Это для того, чтобы в каталог АннаИЛ не попало вложение для ЗлатаГВ или не от ГеннадийВВ, потому что в папках они будут создаваться вручную. Если имена соответствуют, то отправить письмо с вложениями, а файлы переместить в отдельную папку, если не соответствуют, оставить их в папке и создать 1 файл с текстом ошибок: не совпадает адресат, не совпадает отправитель, не совпадает адресат/отправитель - в папке 1, папке 2 |
|
Отправлено: 21:06, 13-01-2021 | #5 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать Могу сразу сказать, что проверять содержимое файла скриптом - занятие крайне неблагодарное, если вообще возможное. Во всяком случае, работать это будет супер-криво при том, что реализация такого добра невероятно трудоёмкая. Я за это точно не буду даже браться.
Ладно бы был один формат (лучше всего txt), ещё куда ни шло, а тут такой зоопарк. Тем более, тут и zip, и pdf, который может вообще не содержать текстового слоя. Насчёт остального - сейчас поковыряю. |
------- Отправлено: 21:38, 13-01-2021 | #6 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать DJ Mogarych, спасибо.
Если бы и без проверки, то уже ах! Тогда емейл отправителя какой-то один на yandex.ru или gmail.com, а адрес получателя либо файлом с именем адреса или в текстовом файле в папке. |
Последний раз редактировалось E_o, 13-01-2021 в 22:24. Отправлено: 22:11, 13-01-2021 | #7 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать Powershell:
$folders = dir C:\mail -Directory -Recurse foreach ($folder in $folders) { $files = dir "$($folder.fullname)" -File if ($files |? Extension -match "xlsx?|docx?|pdf|zip" -OutVariable attachments) { Send-MailMessage -SmtpServer smtp.server.com -from sender@server.com ` -to ($files -match "^\w+@\w+\.\w+$").name ` -subject "Тема письма" -body "Текст письма" ` -attachments $attachments.fullname } } |
------- Отправлено: 22:17, 13-01-2021 | #8 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать DJ Mogarych,
спасибо, сейчас попробую |
Отправлено: 22:26, 13-01-2021 | #9 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать $Encoding = [System.Text.Encoding]::UTF8 $secpasswd = ConvertTo-SecureString 'passw' -AsPlainText -Force $smtpcredentials = New-Object System.Management.Automation.PSCredential ('my@e-mail.ru', $secpasswd) $folders = dir C:\Mail -Directory -Recurse foreach ($folder in $folders) { $files = dir "$($folder.fullname)" -File if ($files |? Extension -match "xlsx?|docx?|pdf|zip" -OutVariable attachments) { Send-MailMessage -Port 587 -UseSSL -SmtpServer smtp.yandex.ru -credential $smtpcredentials -from my@e-mail.ru -Encoding $Encoding ` -to ($files -match "^\w+@\w+\.\w+$").name ` -subject "Тема письма" -body "Текст письма" ` -attachments $attachments.fullname } } Большое спасибо. Письма отправляются, доходят. |
Отправлено: 23:28, 13-01-2021 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Отправка email | interminable | Скриптовые языки администрирования Windows | 5 | 13-01-2017 16:00 | |
Автоматическая отправка файлов из локального каталога на FTP | __sa__nya | Хочу все знать | 5 | 09-03-2015 09:19 | |
FreeBSD - [решено] Zabbix. Отправка по email | rip88 | Общий по FreeBSD | 1 | 07-11-2013 14:52 | |
CMD/BAT - [решено] Отправка скриншота на email | andrew_gurylyov@vk | Скриптовые языки администрирования Windows | 22 | 23-02-2012 11:52 | |
CMD/BAT - cmd определение ip и отправка на email | exekill | Скриптовые языки администрирования Windows | 1 | 15-01-2012 17:40 |
|