Имя: Пароль:
1C
1С v8
ошибка отправки писем встроенным почтовым клиентом
0 novichok79
 
10.08.16
17:02
Доброго времени суток вам, уважаемые специалисты!
Отправляю письмо с картинкой в HTML.
При отправке письма типовая процедура отправки не находит в справочнике вложения писем ту самую картинку и не парсит ее.

Имеем файл - \\server\Обмен\2016\МЕНЕДЖЕРЫ\АКЦИИ\АКЦИЯ! Планы.jpg

Прикрепляем его в электронное письмо и отправляем:
{ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль(1195)}: Ошибка при вызове метода контекста (Послать): Неправильный путь к файлу '\\\server\Обмен\2016\МЕНЕДЖЕРЫ\АКЦИИ\АКЦИЯ! Планы.jpg'

Есть ли у вас какой-то пример с парсингом? Заранее благодарю.
1 Fragster
 
гуру
10.08.16
17:04
а че там так дофига \\\\ ?
2 novichok79
 
10.08.16
17:05
файл называется
\\server\Обмен\2016\МЕНЕДЖЕРЫ\АКЦИИ\АКЦИЯ! Планы.jpg

название файла не меняется, процедура отправки писем - типовая. ошибка вываливается именно в методе послать, из-за того что картинка неотпарсенная в теле письма.
3 novichok79
 
10.08.16
17:08
база УТ 10.3.31.3
4 Nuobu
 
10.08.16
17:09
а че там так дофига \\\\?
5 YFedor
 
10.08.16
17:10
а картинка в письмо загружается сразу при выборе или при выборе записыватся ссылка, а загрузка картинки в письмо происходит при его отправке?
6 novichok79
 
10.08.16
19:27
(4) я не знаю, но в реквизитах объекта ПочтовоеСообщение путь правильный, и в документе эл. письма тоже.
7 novichok79
 
10.08.16
19:28
(5) картинка загружается через вызов стандартной процедуры УправлениеЭлектроннойПочтой.СоздатьПисьмо, с передачей необходимых реквизитов в эту процедуру, в том числе и ВидТекста, который равен = HTML с картинками.
8 mehfk
 
10.08.16
19:37
(7) Странно, в 10.3.21.2 нет такой функции, а тм 100 лет ничего не меняли.
9 novichok79
 
10.08.16
20:05
(8) сами напросились:
[CODE]
    СтруктураНовогоПисьма = Новый Структура;
    СтруктураНовогоПисьма.Вставить("ВидТекста", Перечисления.ВидыТекстовЭлектронныхПисем.HTMLСКартинками);
    СтруктураНовогоПисьма.Вставить("Тело", ТекстСообщенияДляОтправки);
    СтруктураНовогоПисьма.Вставить("Тема", ТемаПисьма);

    СписокФайловВложений = Новый СписокЗначений;

    Для Каждого СтрокаВложения Из Вложения Цикл

        Если Не ПустаяСтрока(СтрокаВложения.ПолныйПутьКФайлу) Тогда
            
            ФайлНаДиске = Новый Файл(СтрокаВложения.ПолныйПутьКФайлу);
            
            Если ФайлНаДиске.Существует() Тогда

                СтруктураВложения = Новый Структура;
                СтруктураВложения.Вставить("Хранилище",
                Новый ХранилищеЗначения(Новый ДвоичныеДанные(СтрокаВложения.ПолныйПутьКФайлу), Новый СжатиеДанных));
                СтруктураВложения.Вставить("ИмяФайла", ФайлНаДиске.Имя);
                СтруктураВложения.Вставить("Наименование", ФайлНаДиске.ИмяБезРасширения);
                СписокФайловВложений.Добавить(СтруктураВложения);

            КонецЕсли;

        КонецЕсли;

    КонецЦикла;
    
    ПолучателиПисьма = Новый СписокЗначений;
    КонтрагентПредставление = СокрЛП(СтрокаПолучатели.Контрагент);
    ПолучателиПисьма.Добавить(СтрокаПолучатели.EMail, КонтрагентПредставление);

    СтруктураНовогоПисьма.Вставить("Кому", ПолучателиПисьма);

    Если СписокФайловВложений.Количество() > 0 Тогда
        
        СтруктураНовогоПисьма.Вставить("СписокФайловВложений", СписокФайловВложений);
        
    КонецЕсли;

    СтруктураНовогоПисьма.Вставить("УчетнаяЗапись", УчетнаяЗапись);
    мТекущийПользователь = глЗначениеПеременной("глТекущийПользователь");

    СтруктураСозданногоПисьма =
    УправлениеЭлектроннойПочтой.НаписатьПисьмо(мТекущийПользователь, СтруктураНовогоПисьма, , , , , , Истина, Ложь);

    Если ТипЗнч(СтруктураСозданногоПисьма) = Тип("Структура")
        И СтруктураСозданногоПисьма.Свойство("ПисьмоСсылка") Тогда

        ПисьмоСсылка = СтруктураСозданногоПисьма.ПисьмоСсылка;
        
    Иначе ПисьмоСсылка = Документы.ЭлектронноеПисьмо.ПустаяСсылка();
    КонецЕсли;
    
    Если ЗначениеЗаполнено(ПисьмоСсылка) Тогда
    
        СоответствиеТекстовЭлектронныхПисем = глЗначениеПеременной("глСоответствиеТекстовЭлектронныхПисем");
        ПоказыватьОкноВыполнения = Ложь;
        ТекстОшибокПриОтправкеПочты = "";
        
        СоответствиеПисем = Новый Соответствие;
        СоответствиеПисем.Вставить(ПисьмоСсылка);
        
        УправлениеЭлектроннойПочтой.ОтправитьПисьма(СоответствиеПисем,
        СоответствиеТекстовЭлектронныхПисем, мТекущийПользователь, Ложь, ТекстОшибокПриОтправкеПочты);

        Если Не ПустаяСтрока(ТекстОшибокПриОтправкеПочты) Тогда

            ОбщегоНазначения.СообщитьОбОшибке(
            "Отправка электронных сообщений выполнена с ошибками:" + Символы.ПС + ТекстОшибокПриОтправкеПочты);

        КонецЕсли;

    КонецЕсли;
[/CODE]
10 Fram
 
10.08.16
20:21
Так файл то доступен? из проводника, например
11 novichok79
 
10.08.16
20:57
(10) да, конечно
12 Optan
 
10.08.16
21:40
(11)
А если перенести и переименовать файл на что-нибудь попроще C:\temp\1.jpg падает?
13 DrHiHi
 
10.08.16
22:14
была подобная проблема... это у пользователей на сервере не хватает прав на просмотр картинок... если отправлять письмо без картинки, то все гуд, а если в тело письма вложить картинку, то начинаются такие траблы...
вообщем сис.админ не хотел особо разбираться, а мы, к письму, прикрепляем pdf файл, а тело письма пустое... и все всех устраивает))
14 novichok79
 
10.08.16
23:42
(12) сегодня заходил пользователь, и утверждал, что даже с картинкой с локального компьютера не получается отправить, поэтому я и решил, что трабл скорее всего из-за того что картинки в тексте письма не пропарсены.
15 novichok79
 
10.08.16
23:43
(13) дело в том, что картинки с сервера даже как вложения не отправляются.
16 Fram
 
11.08.16
00:20
(14) Судя по формлуировке ошибки "Неправильный путь к файлу" надо все таки попробовать простое локальное имя.
17 novichok79
 
11.08.16
00:22
(16) уже, завтра попробую сделать копирование файлов во временную папку перед отправкой.
18 novichok79
 
11.08.16
08:45
(16) копирование во временный файл на локальном диске помогло. задача решена.
19 novichok79
 
11.08.16
08:45
спасибо всем за помощь