Как отправить из 1с 7.7 файл по электронной почте
Первый вариант. Работает на стандартной компоненте V7Plus 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,“Файл импорта “,,сКатал+сФайл);
|