Реклама

19-10-2021, 13:41 - (Программирование)
Предположим, перед нами стоит задача автоатизировать процесс отпрвки файлов через MS Office Outlook по одному или нескольким адресам электронной почты, например - ежедневно мы отправляем отчеты в отдел кадров.
Как отправить файл по электронной почте конкретному адресату, кликнув правой кнопкой мыши на файле, который мы хотим отправить, при этом в тексте письма ещё должна быть подпись с контактными данными и логотипом организации?Для пользования такой возможностью необходимо выполнить следующие действия:
1. В программе MS Office Outlook настроить подписи для новых писем - Меню Файл -> Параметры ->Почта ->Подписи.
2. В случае если настроена одна подпись или установлена подпись по умолчанию для новых писем скачиваем и настраиваем под себя этот скрипт
, а в случае нескольких подписей скачиваем и настраиваем под себя и сохраняем его в папке прописанной в переменной окружения Windows - Path или добавить в данную переменную путь к файлу скрипта. В Windows 10, чтобы настроить переменную Path щелкаем левой кнопкой мыши по кнопке Windows в левом нижнем углу, далее - параметры -> О программе -> Дополнительные параметры системы, в открывшемся окне жмём кнопку "Переменные среды" -> Переменные среды пользователя. Отличие первой версии от второй в том, что в первой письмо создается с подписью по умолчанию, а во второй можно настроить путь к любой подписи. Файлы подписи находятся в папке C:\Users\Имя_пользователя\AppData\Roaming\Microsoft\Signatures в файле с "названием подписи.htm". При наличии картинки в подписи путь к этой картинке в конце файла с "названием подписи.htm" следует заменить на абсолютный, например: <v:imagedata src="Подпись.files/image001.png" o:title="image001"/>
</v:shape><![endif]--><![if !vml]><img width=50 height=50
src="Подпись.files/image001.png" v:shapes="_x0000_i1025"><![endif]><i
style='mso-bidi-font-style:normal'><span style='font-size:12.0pt;font-family:
"Times New Roman",serif'>Сергей</span></i> </p>
</div>
</body>
</html>
- заменить на
<v:imagedata src="C:\Users\Имя_пользователя\AppData\Roaming\Microsoft\Signatures\Подпись.files\image001.png" o:title="image001"/>
</v:shape><![endif]--><![if !vml]><img width=50 height=50
src='cid:C:\Users\Имя_пользователя\AppData\Roaming\Microsoft\Signatures\Подпись.files\image001.png' v:shapes="_x0000_i1026"><![endif]><i
style='mso-bidi-font-style:normal'><span style='font-size:12.0pt;font-family:
"Times New Roman",serif'>Сергей</span></i>
</div>
</body>
</html>
3. Создать ярлык для запуска файла скрипта в папке C:\Users\Имя_пользователя\AppData\Roaming\Microsoft\Windows\SendTo . Имя для ярлыка следует выбрать такое, как вы хотите видеть его в контекстном меню виндовс, например "Отправить в отдел кадров", имя ярлыка в этом случае будет "Отправить в отдел кадров.lnk"
Разберем подробнее скрипт отправки письма.
Первый вариант с подписью по умолчанию:
/*
v2021.10.18
Скрипт для формирования письма в MS Office Outlook, вложением файла(лов), формирование темы письма
*/
/* Настройки */
var myTema="Тема ";
var myBody=""; //текст письма
var myFrom="маил@yandex.ru";//от кого (емайл адрес учётной записи, с которой отправлять)
//var myAdres="Шевченко Татьяна";//"ok@yandex.ru"; //куда отправлять(Имя (Точное!) из адресной книги или адрес)
var myAdres=myFrom;//куда отправлять (для тестирования)
/* Настройки */
var Signature = "";
var wsh=WScript.CreateObject("WScript.Shell");
var objArgs=WScript.Arguments;
//проверка наличия аргументов
if(objArgs.length<1){
WScript.Echo("Не хватает обязательных параметров")
WScript.Quit(2); // выход с кодом 2 - ошибка отправки
}
var fso = WScript.CreateObject("Scripting.FileSystemObject");
//Отправка через OutLook
//Проверяем не открыт ли уже MS Outlook
try{
cdo=GetObject("","Outlook.Application");
var outlookStarted=1;
}
catch (e){
//Если ошибка то не открыт и запускаем его
//if(e.number!=0) WScript.Echo("e="+e.number+"\nописание"+e.description);
//OlNotRunning = True;
wsh.run("outlook.exe");
cdo=WScript.CreateObject("Outlook.Application");
var outlookStarted=2;
}
oNSpace = cdo.GetNamespace("MAPI");
oAccounts = oNSpace.Accounts;
for(i=1; i<=oAccounts.Count;i++){
if(oAccounts(i).SmtpAddress == myFrom){
var myMail=cdo.CreateItem(0);
myMail.Display(); //отображаем для редактирования
var AttachmentsFile=myMail.Attachments;
myMail.To=myAdres;
myMail.CC="";
myMail.Subject=myTema;
//вложения
for(k=0; k<objArgs.length;k++){
AttachmentsFile.Add(objArgs(k));
myMail.Subject=k>0 ? myMail.Subject + ", " + fso.GetBaseName(objArgs(k)) : myMail.Subject + fso.GetBaseName(objArgs(k));
}
//myMail.Send(); //Посылаем письмо
};
}
//завершаем работу - очищаем объекты
cdo.Nothing;
myMail.Nothing;
WScript.Quit(0); // выход с кодом 0 - ОК
И второй вариант немного сложнее, в котором можно настроить путь к любой подписи:
/*
v2021.10.18
Скрипт для формирования письма в MS Office Outlook, вложением файла(лов), формирование темы письма
*/
/* Настройки */
var myTema="Тема ";
var myBody=""; //текст письма
var myFrom="маил@yandex.ru";//от кого (емайл адрес учётной записи, с которой отправлять)
//var myAdres="Шевченко Татьяна";//"ok@yandex.ru"; //куда отправлять(Имя (Точное!) из адресной книги или адрес)
var myAdres=myFrom;//куда отправлять (для тестирования)
/* Настройки */
var Signature = "";
var wsh=WScript.CreateObject("WScript.Shell");
var SigString = "C:\\Documents and Settings\\" + wsh.ExpandEnvironmentStrings( "%USERNAME%" ) + "\\Application Data\\Microsoft\\Signatures\\подпись.htm"; //путь к файлу подписи
var objArgs=WScript.Arguments;
//проверка наличия аргументов
if(objArgs.length<1){
WScript.Echo("Не хватает обязательных параметров")
WScript.Quit(2); // выход с кодом 2 - ошибка отправки
}
var fso = WScript.CreateObject("Scripting.FileSystemObject");
if(fso.FileExists(SigString)){
var ts = fso.OpenTextFile(SigString);
while(!ts.atEndOfStream){
Signature = Signature + ts.ReadLine();
}
}
else{
Signature = "";
}
//WScript.Echo(SigString);
//Отправка через OutLook
//Проверяем не открыт ли уже MS Outlook
try{
cdo=GetObject("","Outlook.Application");
var outlookStarted=1;
}
catch (e){
//Если ошибка то не открыт и запускаем его
//if(e.number!=0) WScript.Echo("e="+e.number+"\nописание"+e.description);
//OlNotRunning = True;
cdo=WScript.CreateObject("Outlook.Application");
var outlookStarted=2;
}
//WScript.echo(cdo.Accounts(0).SmtpAddress);
oAccounts = cdo.GetNamespace("MAPI").Accounts;
for(i=1; i<=oAccounts.Count;i++){
//WScript.echo(oAccounts(i).SmtpAddress);
if(oAccounts(i).SmtpAddress == myFrom){
var myMail=cdo.CreateItem(0);
var AttachmentsFile=myMail.Attachments;
myMail.To=myAdres;
myMail.CC="";
myMail.Subject=myTema;
myMail.BodyFormat = 2;
myMail.HTMLBody = myBody + "<br><br>" + Signature;
//вложения
for(k=0; k<objArgs.length;k++){
AttachmentsFile.Add(objArgs(k));
myMail.Subject=k>0 ? myMail.Subject + ", " + fso.GetBaseName(objArgs(k)) : myMail.Subject + fso.GetBaseName(objArgs(k));
}
myMail.Display(); //отображаем для редактирования
myMail.SendUsingAccount = oAccounts(i);
//myMail.Send(); //Посылаем письмо
};
}
//if(outlookStarted==2)cdo.Quit(); //закрытие OutLook
WScript.Quit(0); // выход с кодом 0 - ОК
Похожие материалы
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Программы по категориям

Самое популярное за месяц

Теги
2.6.0.538, 2013, Advanced, Angry Birds Season, Balabolka, Baltagy, by, Care, Corel, Final, Google Планета Земля, Linux Windows, Paint, Portable, Pro, Shop, Soft, SP2, Spessy анализ компьютера, System, X5, антивирус касперского бесплатно, Бесплатные звонки, Защита телефона от кражи, Конверты, Почтовые, Программы, Скачать CCleaner, Супер Корова, Январь, Яндекс браузер

Онлайн
