Как сохранять отправленные письма в папке «Отправленные» при отправке из 1С через Mail.ru?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При автоматизации рассылки писем из 1С с использованием протокола SMTP пользователи часто сталкиваются с тем, что отправленные сообщения не отображаются в папке «Отправленные» почтового клиента. Это происходит потому, что SMTP-сервер выполняет функцию передачи письма получателю, но не несет ответственности за архивацию копии у отправителя. Разберем, как решить эту задачу, учитывая современные требования безопасности и ограничения почтовых сервисов.

Почему не удается сохранить письмо стандартными средствами?

Ранее программисты пытались решать эту задачу через IMAP, используя свойство ТекущийПочтовыйЯщик. Однако этот подход имеет ряд проблем:

Кроме того, современные почтовые сервисы, такие как Mail.ru, требуют строгого соблюдения настроек безопасности, о которых важно помнить перед началом работы с кодом.

Важный этап: подготовка учетной записи

Перед тем как настраивать отправку, убедитесь, что вы используете «Пароль для внешних приложений». Обычный пароль от почты для 1С больше не подходит. Чтобы настроить корректное подключение:

  1. Перейдите в настройки безопасности вашей почты на Mail.ru.
  2. Создайте «Пароль для внешних приложений».
  3. Используйте именно этот сгенерированный пароль в объекте ИнтернетПочтовыйПрофиль вашей обработки в 1С.

Решение через «Скрытую копию» и правила сервера

Поскольку автоматическое перемещение письма в «Отправленные» средствами протокола SMTP не поддерживается, наиболее надежным способом является использование правил обработки почты (фильтров) на самом сервере. Рассмотрим алгоритм действий:

  1. Добавление скрытой копии (BCC): В процессе формирования письма в 1С принудительно добавьте адрес отправителя в поле «Скрытая копия». Таким образом, при отправке письма на сервер, сервер отправит копию письма на ваш же адрес.
  2. Настройка правила в веб-интерфейсе: Зайдите в настройки вашего почтового ящика (в браузере) и создайте правило сортировки. Логика правила должна быть следующей: «Если отправитель — это я, И письмо содержит меня в скрытой копии, ТО переместить письмо в папку «Отправленные» и отметить прочитанным».

Этот метод считается «золотым стандартом», так как он не зависит от архитектуры вашей 1С или обновлений платформы. Весь процесс автоматизации выглядит следующим образом:


// Пример формирования сообщения с использованием скрытой копии
Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Отправитель = "my_email@mail.ru";
Письмо.Получатели.Добавить("recipient@example.com");
Письмо.СкрытыеКопии.Добавить("my_email@mail.ru"); // Ключевой момент для автосохранения
Письмо.Тема = "Тестовое письмо";
Письмо.Тексты.Добавить("Это тестовое сообщение");

Альтернативный подход: ручное добавление через IMAP

Если создание правил на сервере по каким-то причинам не подходит, можно реализовать принудительную запись письма в папку через ИнтернетПочта по протоколу IMAP. Однако этот метод требует предварительного поиска имени папки:

  1. Подключитесь к почте по протоколу IMAP.
  2. Получите список ящиков методом ИнтернетПочта.ПолучитьСписокЯщиков(), чтобы точно узнать, как называется ваша папка «Отправленные» на сервере (например, это может быть «Sent»).
  3. После успешной отправки через SMTP, создайте новое ИнтернетПочтовоеСообщение и сохраните его в найденную папку методом ИнтернетПочта.ДобавитьСообщение().

Важно помнить, что метод ИнтернетПочта.Послать() в 1С предназначен строго для отправки. Если ваша задача — обеспечить максимальную стабильность, рекомендуем придерживаться метода со скрытой копией (BCC), так как он работает независимо от того, какие библиотеки или протоколы вы используете в коде 1С.

← На главную