Как отправить из 1с 7.7 файл по электронной почте
Первый вариант. Работает на стандартной компоненте V7 1С Предприятие 7.7.
// ОтправитьПоПочте(АдресПолучателя, ИмяФайла)
// Параметры:
// АдресПолучателя, ИмяФайла
Функция ОтправитьПоПочте(АдресПолучателя, ИмяФайла)
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + “v7plus.dll”) <> 1 Тогда
Предупреждение(“Компонента v7plus.dll не найдена!”);
Возврат 0;
КонецЕсли;
Попытка
Почта = СоздатьОбъект(“AddIn.V7Mail”);
Исключение
Предупреждение(“Не удалось создать объект Addin.V7Mail!”);
Возврат 0;
КонецПопытки;
Попытка
Почта.Подключиться();
Почта.НовоеСообщение();
Если ПустоеЗначение(АдресПолучателя) = 0 Тогда
Почта.ДобавитьАдрес(СокрЛП(АдресПолучателя));
Иначе
Предупреждение(“У филиала не задан адрес получателя!”);
Возврат 0;
КонецЕсли;
Если Фс.СуществуетФайл(ИмяФайла) = 0 Тогда
Предупреждение(“Файл не существует – “ + СокрЛП(ИмяФайла));
Возврат 0;
КонецЕсли;
// Попытаемся сделать архив
Пос = Найти(ИмяФайла, “.”);
ФайлАрхив = Сред(ИмяФайла, 1, Пос-1);
Если Фс.СуществуетФайл(ФайлАрхив+”.rar”) = 1 Тогда
ФС.УдалитьФайл(ФайлАрхив+”.rar”);
КонецЕсли;
КомандаСистемы(“rar.exe m “ + ФайлАрхив + “ “ + ИмяФайла);
Если Фс.СуществуетФайл(ФайлАрхив+”.rar”) = 1 Тогда
Почта.ДобавитьФайл(ФайлАрхив+”.rar”);
Иначе
Почта.ДобавитьФайл(ИмяФайла);
КонецЕсли;
Почта.Заголовок = “Обновления по дисконтным картам”;
Почта.Текст = “Обновления по дисконтным картам от “ + ДатаК;
Почта.Послать(0);
Почта.Отключиться();
Исключение
Предупреждение(“Неудачная попытка! Отправка письма по эл. почте не произведена!”);
Возврат 0;
КонецПопытки;
Возврат 1;
КонецФункции
Второй вариант: с использованием внешней компоненты ROM-Mail.dll. Данная компонента работает независимо как почтовый клиент, в отличие от стандартного, который подгружает Аутлук.
ЗагрузитьВнешнююКомпоненту(“ROM-Mail.dll”);
ВК = СоздатьОбъект(“AddIn.AddInMail”);
ВК.СерверОтправки = “192.168.1.5”;
ВК.ПортОтправки = “25”;
ВК.Логин = “login”;
ВК.Пароль = “password”;
ВК.АутентификацияПриОтправке = 1;
Если ВК.Подключиться(“Отправка”)=0 Тогда
Предупреждение(“Не удалось подключиться к серверу!”);
Возврат;
КонецЕсли;
ВК.АдресОтправителя = “mail@mail.com”;
ВК.ИмяОтправителя = “1С:Предприятие 7.7”;
ВК.АдресПолучателя = “poluchatel@mail.ru”;
ВК.СкрытаяКопия = “poluchatel2@mail.ru”;
ВК.ТипПисьма = 2;
ВК.Тема = “ТЕст”;
ВК.Тело = “Тестю”;
ВК.Вложения = “D:\Базы1С\Архив.zip”;
ВК.Кодировка =“windows-1251”;
ВК.НеКодироватьТему = 0;
ВК.ПодтверждениеДоставки = 0;
ВК.ПодтверждениеПрочтения = 0;
Если ВК.Отправить() = 1 Тогда
Предупреждение(“Письмо успешно отправлено получателю”);
Иначе
Предупреждение(“Не удалось отправить письмо!”);
КонецЕсли;
ВК.Отключиться();
Третий вариант.
ОтправитьПочту(КомуОтправить,ОтКогоОтправить,ТемаПисьма,ТекстПисьма,Вложение)
ЗагрузитьВнешнююКомпоненту(“WheelAddIn.dll”);
ВнКомпонент = СоздатьОбъект(“AddIn.FWheelAddIn”);
csFrom = СокрЛП(ОтКогоОтправить);
csTO = СокрЛП(КомуОтправить);
csSUBJECT = СокрЛП(ТемаПисьма);
csTEXT = ТекстПисьма;
Если ПустоеЗначение(Вложение) = 0 Тогда
csATTACH = СокрЛП(Вложение);
Иначе
csATTACH = “”;
КонецЕсли;
Если ВнКомпонент.ОтправитьПочтуПоSMTP = 1 Тогда
Сообщить(“Электронная почта на адрес “csTO“ отправлена!!!”,”!!”);
Иначе
Сообщить(ВнКомпонент.ОшибкаПриОтпракеПочты());
КонецЕсли
КонецПроцедуры
ОтправитьПочту(БанкEMail,ОтКогоEMail,“Файл импорта “,,сКатал+сФайл);
| опубликовано: 16 Июль 2009, 19:43