Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отправить письмо на почту посредством 1С 2 страниц V   1 2 >          
Gigi Подменю пользователя
сообщение 19.06.18, 9:18
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Всем привет!
Меня интересует вопрос указанной темы.
По этому вопросу рыл усердно..
Вот код:
&НаКлиенте
Процедура ОтправкаНаМыло()
//==============================================
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераSMTP = "smtp.mail.ru";
    Профиль.ПортSMTP = 25;
    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации;
    Профиль.ПользовательSMTP = "ЛогинПочтыОтправителя";
    Профиль.ПарольSMTP = "ПарольПочтыОтправителя";
//==============================================    
    Письмо = Новый ИнтернетПочтовоеСообщение;
    Письмо.Кодировка = "UTF-8";
    Письмо.Тема = "Тестовое сообщение";
    Письмо.ИмяОтправителя = "Ф.И.О";
    Письмо.Отправитель.Адрес = "ПочтаОтправителя@mail.ru";
    Письмо.Получатели.Добавить("ПочтаПолучателя@mail.ru");
    ТекстСообщения="Письмо отправлено - " +ТекущаяДата();
    Письмо.Тексты.Добавить(ТекстСообщения,ТипТекстаПочтовогоСообщения.ПростойТекст);    
//==============================================
Почта = Новый ИнтернетПочта;
//Попытка
    Почта.Подключиться(Профиль);
    Сообщить("Профиль подключен!");
    Почта.Послать(Письмо); // На этой линии глючит. Никак не может отправить.
    Сообщить("Письмо отправлено!");
    Почта.Отключиться();
//Исключение
    //Сообщить("Не удалось подключится и отправить письмо!");
//КонецПопытки;
//==============================================
КонецПроцедуры

Вроде сделал как указанно в разных статьях но все обрывается на самом главном... на линии:
Почта.Послать(Письмо);

И пишет:
Цитата
{ОбщаяФорма.Форма_Энергосистема.Форма(37)}: Ошибка при вызове метода контекста (Послать)
Почта.Послать(Письмо);
по причине:
Почтовый ящик не доступен (SMTP error code 550): ПочтаПолучателя@mail.ru

В чем причина?
Буду признателен!

Bernet Подменю пользователя
сообщение 19.06.18, 9:28
Сообщение #2

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

Gigi @ Сегодня, 10:18 * ,
Судя по всему что-то не так с почтой, вы уверены что правильно ввели email адрес?


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Спасибо сказали: Gigi,

Gigi Подменю пользователя
сообщение 19.06.18, 9:44
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Bernet @ Сегодня, 9:28 * ,
Цитата(Bernet @ 19.06.18, 9:28) *
вы уверены что правильно ввели email адрес?

Вроде бы да...
И кроме того вот другой форум:
[необходимо зарегистрироваться для просмотра ссылки]
Там в конце темы аналогичная проблема. То же самое сообщение ошибки что в моем случае.
Не думаю что ошибка в не правильном логине и пароле отправителя. Потому что, ведь пишет почту получателя... то что она не доступна.
Но вы имеете ввиду адрес получателя ... тоже правильно ввел. Но ладно еще раз проверю ... И жду ответа. И буду признателен

Gigi @ Сегодня, 9:36 * ,
А вот еще на счет портов и т.д.
[необходимо зарегистрироваться для просмотра ссылки]
Короче ... Хотел понять в чем ошибка. В чем причина сбоя
И буду весьма..

Bernet Подменю пользователя
сообщение 19.06.18, 9:49
Сообщение #4

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

Gigi @ Сегодня, 10:18 * ,
Кстати, добавьте строки:
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.ИспользоватьSSLPOP3 = Истина;

SSL шифрование обязательно и для gmail и для mail.ru вроде бы


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Спасибо сказали: Gigi,

Gigi Подменю пользователя
сообщение 19.06.18, 10:33
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Bernet @ Сегодня, 9:49 * ,
Ладно добавлю и запущу тестовый отсыл.
Если честно плаваю во всем этом. Ох ... не знание ... мешает.
Но вообще ПортSMTP указан правильный? ... 25
Я пробовал сменить его на 465. Как указано в этой ссылке:
[необходимо зарегистрироваться для просмотра ссылки]
И сделав это вообще хуже стало... пишет:
Цитата
{ОбщаяФорма.Форма_Энергосистема.Форма(34)}: Ошибка при вызове метода контекста (Подключиться)
Почта.Подключиться(Профиль);
по причине:
SMTP greeting failure: 421 SMTP connection broken (reply)

Ладно! Ша добавлю линию ... и проверю

Gigi @ Сегодня, 9:56 * ,
Проверил ... Никакого эффекта
Вот код с добавкой:
Процедура ОтправкаНаМыло()
//==============================================
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераSMTP = "smtp.mail.ru";
    Профиль.ПортSMTP = 25;
    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации;
    Профиль.ПользовательSMTP = "ЛогинПочтыОтправителя";
    Профиль.ПарольSMTP = "ПарольПочтыОтправителя";
    Профиль.ИспользоватьSSLSMTP = Истина;
    Профиль.ИспользоватьSSLPOP3 = Истина;
//==============================================    
    Письмо = Новый ИнтернетПочтовоеСообщение;
    Письмо.Кодировка = "UTF-8";
    Письмо.Тема = "Тестовое сообщение";
    Письмо.ИмяОтправителя = "Ф.И.О";
    Письмо.Отправитель.Адрес = "ЛогинПочтыОтправителя@mail.ru";
    Письмо.Получатели.Добавить("ЛогинПочтыПолучателя@mail.ru");
    ТекстСообщения="Письмо отправлено - " +ТекущаяДата();
    Письмо.Тексты.Добавить(ТекстСообщения,ТипТекстаПочтовогоСообщения.ПростойТекст);    
//==============================================
Почта = Новый ИнтернетПочта;
//Попытка
    Почта.Подключиться(Профиль);
    Сообщить("Профиль подключен!");
    Почта.Послать(Письмо); // На этой линии глючит. Никак не может отправить.
    Сообщить("Письмо отправлено!");
    Почта.Отключиться();
//Исключение
    //Сообщить("Не удалось подключится и отправить письмо!");
//КонецПопытки;
//==============================================
КонецПроцедуры

Пишет:
Цитата
{ОбщаяФорма.Форма_Энергосистема.Форма(36)}: Ошибка при вызове метода контекста (Подключиться)
Почта.Подключиться(Профиль);
по причине:
TLS/SSL failure for smtp.mail.ru: Invalid token, probably not an SSL server


Gigi @ Сегодня, 10:02 * ,
Ничего не пойму ... думал может антивирус блокирует.
Но в том и дело что вроде отключил на время ... что бы не выпендривался.

Gigi @ Сегодня, 10:05 * ,
Просто это не сильно важный вопрос. Но будет жаль если отчеты по почте отправлять через 1С не получиться.
Очень удобно было бы так.
Поэтому и обращаюсь за помощью.
За что буду признателен!

Bernet Подменю пользователя
сообщение 19.06.18, 10:40
Сообщение #6

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

Gigi @ Сегодня, 11:33 * ,
У меня такой код в самописной конфигурации работал, правда с gmail, для mail.ru только порты могут быть другие, а так принцип тот же
Код
Функция ОтправитьУведомлениеНаПочтуПользователю(СтруктураПараметров) Экспорт
    
    ТекстОшибок = "";
    
    ПолучательПисьма = Неопределено;
        
    СтруктураПараметров.Свойство("ПолучательПисьма", ПолучательПисьма);
    
    УчетнаяЗаписьДляРассылки = Константы.УчетнаяЗаписьДляРассылки.Получить();
    Если НЕ ЗначениеЗаполнено(УчетнаяЗаписьДляРассылки) Тогда
        ТекстОшибок = ТекстОшибок + "Не выбрана учетная запись для рассылки уведомлений на почту.";
        Возврат ТекстОшибок;
    КонецЕсли;
    
    Если ПолучательПисьма = Неопределено Тогда
        ТекстОшибок = ТекстОшибок + Символы.ПС + "Не указана почта получателя уведомления!";
        Возврат ТекстОшибок;
    КонецЕсли;
    
    Профиль = ПолучитьИнтернетПочтовыйПрофиль(УчетнаяЗаписьДляРассылки);
    
    ИнтернетПочта = Новый ИнтернетПочта;
    
    Попытка
        ИнтернетПочта.Подключиться(Профиль);
    Исключение
        
        ТекстОшибок = ТекстОшибок + Символы.ПС + (Строка(УчетнаяЗаписьДляРассылки) + ". " + ОписаниеОшибки());
        Возврат ТекстОшибок;
        
    КонецПопытки;
    
    ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение;
                            
    ПочтовоеСообщение.Кодировка = "utf-8";
    ПочтовоеСообщение.ИмяОтправителя  = СокрЛП(УчетнаяЗаписьДляРассылки.АдресЭлектроннойПочты);
    ПочтовоеСообщение.Отправитель     = СокрЛП(УчетнаяЗаписьДляРассылки.АдресЭлектроннойПочты);
    ПочтовоеСообщение.Тема            = "Тема";
    
    Получатель = ПочтовоеСообщение.Получатели.Добавить();
    Получатель.Адрес           = СокрЛП(ПолучательПисьма);
    Получатель.ОтображаемоеИмя = СокрЛП(ПолучательПисьма);
    Получатель.Кодировка       = "utf-8";

    ТекстСообщения = ПочтовоеСообщение.Тексты.Добавить();
    ТекстСообщения.Кодировка = "utf-8";
    Если УчетнаяЗаписьДляРассылки.КодировкаПисемПоУмолчанию = "HTML" Тогда
        ТекстСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.HTML;    
    ИначеЕсли УчетнаяЗаписьДляРассылки.КодировкаПисемПоУмолчанию = "TEXT" Тогда    
        ТекстСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
    КонецЕсли;
    ТекстСообщения.Текст = ПолучитьТекстДляУведомленияНаПочту(ТекстСообщения.ТипТекста, СтруктураПараметров);
    
    Попытка
        ИнтернетПочта.Послать(ПочтовоеСообщение);
    Исключение
        ТекстОшибок = ТекстОшибок + Символы.ПС + (Строка(УчетнаяЗаписьДляРассылки) + ". " + ОписаниеОшибки());
        Возврат ТекстОшибок;    
    КонецПопытки;
    
КонецФункции

Функция ПолучитьИнтернетПочтовыйПрофиль(УчетнаяЗапись) Экспорт

    Профиль = Новый ИнтернетПочтовыйПрофиль;
    
    Профиль.АдресСервераPOP3 = УчетнаяЗапись.POP3Сервер;
    Профиль.АдресСервераSMTP = УчетнаяЗапись.SMTPСервер;
    Если УчетнаяЗапись.ВремяОжиданияСервера > 0 Тогда
        Профиль.ВремяОжидания = УчетнаяЗапись.ВремяОжиданияСервера;
    КонецЕсли;
    Профиль.Пароль           = УчетнаяЗапись.Пароль;
    Профиль.Пользователь     = УчетнаяЗапись.Логин;
    Профиль.ПортPOP3         = УчетнаяЗапись.ПортPOP3;
    Профиль.ПортSMTP         = УчетнаяЗапись.ПортSMTP;
    
    Профиль.ИспользоватьSSLSMTP = Истина;
    Профиль.ИспользоватьSSLPOP3 = Истина;
    
    Если УчетнаяЗапись.ТребуетсяSMTPАутентификация Тогда
        Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
        Профиль.ПарольSMTP         = УчетнаяЗапись.ПарольSMTP;
        Профиль.ПользовательSMTP   = УчетнаяЗапись.ЛогинSMTP;
    Иначе
        Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации;
        Профиль.ПарольSMTP         = "";
        Профиль.ПользовательSMTP   = "";
    КонецЕсли;
    
    Возврат Профиль;

КонецФункции


УчетнаяЗапись - это справочник, где хранятся логин, пароль и все остальные настойки доступа к почте. Сравните с вашим, может быстрее найдете в чем проблема

Сообщение отредактировал Bernet - 19.06.18, 10:40


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Спасибо сказали: Gigi,

Gigi Подменю пользователя
сообщение 19.06.18, 13:59
Сообщение #7

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Bernet @ Сегодня, 10:40 * ,
Ну ладно!
Выше указанным способом никак не получается.
Пробовал даже
VBA код
Sub Primer() ' Пример использования функции Send_Mail
txt = "Это письмо сформировано макросом" & vbNewLine & _
"без использования внешних программ и подключения дополнительных библиотек"
If Send_Mail("ПолучательЛогин1@mail.ru", "ПолучательЛогин2@mail.ru", "ПолучательЛогин3@mail.ru", "ОтправительЛогин@mail.ru", "проверка отправки почты", txt) Then
MsgBox "Письмо успешно отправлено", vbInformation
Else
MsgBox "Не удалось отправить письмо", vbExclamation
End If
End Sub
Private Sub SaveAccountData() ' запускать один раз - для записи в реестр Windows параметров почтового аккаунта
SaveSetting Application.Name, "mail", "smtpserver", "smtp.mail.ru" ' Ваш SMTPServer
SaveSetting Application.Name, "mail", "sendusername", "ОтправительЛогин@mail.ru" ' Ваша учетная запись
SaveSetting Application.Name, "mail", "sendpassword", "" ' Ваш пароль
End Sub
Function Send_Mail(ByVal MailTo As String, ByVal MailCopy As String, ByVal MailCCopy As String, ByVal MailFrom As String, _
ByVal MailSubject As String, ByVal MailText As String, _
Optional ByVal MailAttachment As String = "") As Boolean
' функция для отправки почты без использования внешних почтовых программ
' ----------------------------------------------------------------------
' в качестве параметров получает:
' MailTo - адрес получателя письма
' MailFrom - адрес отправителя письма
' MailSubject - тема письма
' MailText - текст письма
' MailAttachment - полный путь к файлу вложения (необязательный параметр)
' ----------------------------------------------------------------------
' возвращает TRUE, если отправка почты произошла успешно, и FALSE в обратном случае

Const cdoConfigURL = "http://schemas.microsoft.com/cdo/configuration/"
On Error Resume Next: Err.Clear

SMTPserver = GetSetting(Application.Name, "mail", "smtpserver", "")
sendusername = GetSetting(Application.Name, "mail", "sendusername", "")
sendpassword = GetSetting(Application.Name, "mail", "sendpassword", "")
If Len(SMTPserver) = 0 Or Len(sendusername) = 0 Or Len(sendpassword) = 0 Then Exit Function

Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
.Item(cdoConfigURL & "sendusing") = 2
.Item(cdoConfigURL & "smtpauthenticate") = 1
.Item(cdoConfigURL & "smtpserver") = SMTPserver
.Item(cdoConfigURL & "sendusername") = sendusername
.Item(cdoConfigURL & "sendpassword") = sendpassword
.Item(cdoConfigURL & "smtpserverport") = 465 'порт для SSL: 465
.Item(cdoConfigURL & "smtpusessl") = 1 'использовать аутентификацию: да
.Update
End With
Set cdoMessage = CreateObject("CDO.Message")
With cdoMessage
Set .Configuration = cdoConfig
.BodyPart.Charset = "koi8-r"
.From = MailFrom:
.CC = MailCopy
.BCC = MailCCopy
.To = MailTo
.Subject = MailSubject
.TextBody = MailText
If Len(MailAttachment) > 0 Then .AddAttachment MailAttachment
.Send
End With
Set cdoMessage = Nothing: Set cdoConfig = Nothing

' If Err.Number = -2147220973 Then MsgBox ("Отсутствует связь с интернетом")
' If Err.Number = -2147220975 Then MsgBox ("SMTP сервер ответил отказом")
' If Err.Number = 0 Then MsgBox ("Письмо отправлено")
Send_Mail = Err = 0
End Function

Тоже не получилось...
Поэтому уже по другому хотел спросить
Ну на пример таким путем:
ЗапуститьПриложение("mailto:ПолучательЛогин@mail.ru");

Открывается браузер и почта Mail.ru ... Если она авторизована то создается новое сообщение с указанным получателем.
Что нужно что бы письмо можно было отправить из 1С хотя бы так. Вернее не отправить а просто процедурой 1С открыть браузер и войти в свою почту.
Следующее:
1) Войти в свою почту вне зависимости от сервера mail.ru, rambler.ru и т.д. (что должно быть указано в самой процедуре) и вне зависимости от того она открыта или нет (что требует указания пароля в процедуре)
2) В самой процедуре 1С определить: Имя отправителя, тему сообщения, текст сообщения, и т.д. ...И САМОЕ ГЛАВНОЕ к новому сообщению прикрепить файл отправки (что конечно и тут требует указания адреса файла в самой процедуре)
Т.е. Все это программно и автоматический нажав на кнопку процедуры. Что бы в браузере автоматический проставлялись все указанные параметры отправки.
Вот как нужно, раз с первым более удобным способом не получается... Т.е. хотя бы так.
Иными словами это не отправка а автоматическое открытие почтового ящика с автоматизацией всех настроек перед отправкой.
Рассчитываю на вашу помощь... Могу сам помучиться но это дольше.
Так что, если не трудно малая процедурка
Буду признателен!
Gigi @ Сегодня, 12:02 * ,
Это просто HTML команды через 1С. Которые чуть подзабыл.
Нужно вспомнить. Но я просил сэкономить время.
Пожалуйста если не трудно!
Gigi @ Сегодня, 12:36 * ,
Просмотрел эту статью:
http://pro1c.org.ua/index.php?showtopic=11029
Короче smile.gifsmile.gif В теории все хорошо... но на деле ... smile.gifsmile.gif По моему это труднее чем модули состыковать на космической орбите. smile.gifsmile.gif
Gigi @ Сегодня, 13:01 * ,
<a href="mailto:gigi_spoke@mail.ru" target="_blank" >Открыть почту</a>
<br>
<a href="mailto:gigi_spoke@mail.ru?subject=Тестовая отправка&amp;body=Здравствуйте!">Открыть почту с настройкой отправки</a>

Вот каким макаром ... Ну из 1С будет через:
ЗапуститьПриложение("mailto:gigi_spoke@mail.ru?subject=Тестовая отправка&amp;body=Здравствуйте!");

Просто во первых нужно что бы открывался не тот почтовый сервис который в браузере указан по умолчанию.. а программно любой указанный в коде ссылки.
Во вторых что бы не просто открывался, а автоматический авторизовывался по указанному в ссылке логину и паролю.
В третьих нужно автоматический прикрепить файл к сообщению, чего че то не нашел в параметрах спец ссылки "Mailto".
Короче ... видимо то что хотел ... ну никак

Prospero Подменю пользователя
сообщение 19.06.18, 22:57
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 68
Из: Киев
Спасибо сказали: 15 раз
Рейтинг: 0

Gigi, Ваш код работает, во всяком случае проверил на Gmail.
Попробуйте изменить способ аутентификации
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;

и порт для SMTP на маилру 465

Проверил на Маил.Ру
Действительно, выскакивает ошибка
Цитата
Произошла ошибка при работе с SMTP. Код ошибки: 25 (Отказ в установлении соединения со стороны сервера.)

Заведите ящик на GMail smile.gif

Спасибо сказали: Gigi,

Batchir Подменю пользователя
сообщение 20.06.18, 8:22
Сообщение #9

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

1. [необходимо зарегистрироваться для просмотра ссылки]
2. [необходимо зарегистрироваться для просмотра ссылки]
3. Не забываем что мэйл ру не дружит с некоторыми странами

Сообщение отредактировал Batchir - 20.06.18, 8:26

Спасибо сказали: Gigi,

barul4ik Подменю пользователя
сообщение 20.06.18, 8:40
Сообщение #10

Молчаливый
*
Группа: Пользователи
Сообщений: 7
Спасибо сказали: 2 раз
Рейтинг: 0

Для отправки писем из 1С использовал утилиту stunnel.
http://pro1c.org.ua/index.php?showtopic=28847

Спасибо сказали: Gigi,

Bernet Подменю пользователя
сообщение 20.06.18, 8:42
Сообщение #11

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

barul4ik @ Сегодня, 9:40 * ,
Эту утилиту нужно было юзать с платформой 8.2, которая не поддерживала SSL-шифрование. 8.3 уже поддерживает, использовать эту утилиту уже не обязательно


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Спасибо сказали: Gigi,

Gigi Подменю пользователя
сообщение 20.06.18, 9:52
Сообщение #12

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Bernet @ Сегодня, 8:42 * ,
ЭВРИКА! smile.gifsmile.gif
Дорогие друзья ... ВСЕ РАБОТАЕТ! smile.gifsmile.gif
Просто нужно было поставить АутентификацияSMTP на ПоУмолчанию (что было вами рекомендовано) и еще как вы же говорили добавить:
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.ИспользоватьSSLPOP3 = Истина;

Ну еще порт сменить на 465. Что тоже было здесь предложено.
А остальное оставить как есть. И уже теперь все заработало
Надо отпраздновать! smile.gifsmile.gif
Вот финальный вариант тестовой процедуры отправки.
&НаКлиенте
Процедура ОтправитьНаПочту(Команда)
Если Вопрос("Отправить отчет на почту?",РежимДиалогаВопрос.ДаНет,,,"Отправка отчета на почту")=КодВозвратаДиалога.Да Тогда
ОтправкаНаПочту("smtp.mail.ru",465,"mail.ru","Логин","Пароль","gigi@mail.ru");
//ОтправкаНаПочту("smtp.rambler.ru",465,"rambler.ru","Логин","Пароль","gigi@mail.ru");
//ОтправкаНаПочту("smtp.gmail.com",465,"gmail.com","Логин","Пароль","gigi@mail.ru");
КонецЕсли;    
КонецПроцедуры

&НаКлиенте
Процедура ОтправкаНаПочту(АдресСервераSMTP,ПортSMTP,Домен,Логин,Пароль,ПочтаПолучателя)
//==============================================
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераSMTP = АдресСервераSMTP;    
    Профиль.ПортSMTP = ПортSMTP;
    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
    Профиль.ПользовательSMTP = Логин;
    Профиль.ПарольSMTP = Пароль;
    Профиль.ИспользоватьSSLSMTP = Истина;
    Профиль.ИспользоватьSSLPOP3 = Истина;    
//==============================================    
    Письмо = Новый ИнтернетПочтовоеСообщение;
    Письмо.Кодировка = "UTF-8";
    Письмо.Тема = "Тестовое сообщение";
    Письмо.ИмяОтправителя = "Дональд Трамп";
    Письмо.Отправитель.Адрес = Логин+"@"+Домен;
    Письмо.Получатели.Добавить(ПочтаПолучателя);
    ТекстСообщения="Письмо отправлено - " +ТекущаяДата();
    Письмо.Тексты.Добавить(ТекстСообщения,ТипТекстаПочтовогоСообщения.ПростойТекст);    
//==============================================
Почта = Новый ИнтернетПочта;
Попытка
    Почта.Подключиться(Профиль);
    //Состояние("Отправка..",0);
    Сообщить("Профиль подключен!");
    Почта.Послать(Письмо);
    Сообщить("Письмо отправлено!");
    Почта.Отключиться();
Исключение
    Сообщить("Не удалось подключится и отправить письмо!");
КонецПопытки;
//==============================================
КонецПроцедуры

Все заработало! Можете проверить.
Ладно! Всем спасибо.
И если в коде че то не предусмотрено и надо было еще что то добавить то просьба дать знать что именно.
Просто я смотрел что для корректной настройки отправки по моему если не ошибаюсь еще нужно: "Отключить рассылку: вкл/откл. функции массовой рассылки писем"
Как указано на пример [необходимо зарегистрироваться для просмотра ссылки] Просто это я в свойствах ИнтернетПочтовыйПрофиль не нашел. Хотя итак тоже работает!
Ладно! Еще раз всем спасибо!



Gigi Подменю пользователя
сообщение 16.07.18, 16:38
Сообщение #13

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Gigi @ 20.06.18, 10:52 * ,
Опять привет!
Гууу... возвращаюсь опять к этой теме... клянусь сил больше нет...
Думал написал почтовый клиент в 1С который супер облегчает работу .. позволяет одним махом посылать отчеты нескольким получателям (которых 40 или 70).... с уже указанными почтовыми адресами и адресами файлов на диске для отправки.
Программа, которая все это позволяет делать одним махом... без необходимости каждый раз открывать почту и каждому прикреплять файл и тратить на это время. Просто открыл форму и нажал на отправить и все.
Но разве может быть так... думал написал и ЗАКРЫЛ ВОПРОС! Нееет опять всплывает.
Я просто никак не пойму. Уже сто раз тестировал. Все было нормально. Никаких сбоев. Но недавно попробовал послать а в итоги программа на все почты посылает и не дает ошибку. Т.е. там в коде условие... если не нашла почту то должна сообщить что почта не найдена. Поэтому вроде сама программа не выдает такие сообщения и сообщает об успешной доставке.. как прописал в коде. Только вот зайдя в браузер и открыв ту почту с которого слал письма приходят: "Mail delivery failed ". И самое смешное что такое приходит от некоторых адресов а от некоторых нет.
Для теста создал две почты получателя ... оба на майл ру. И потом с программы послал обоим. И программа без сбоя обоим отправила. Только одно дошло а другое нет.
О Господи ... ЧТО ЭТО ТАКОЕ? Я одурею ... сколько можно талдычить одно и то же. СТО РАЗ ПРОВЕРЯЛ... Вроде работало.
Пожалуйста подскажите!
Буду признателен!

proxy Подменю пользователя
сообщение 16.07.18, 17:25
Сообщение #14

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 5 раз
Рейтинг: 0

Gigi @ Сегодня, 17:38 * ,
Почта отправляется через какой-то промежуточный сервер посредством SMTP? Используется SSL/TLS? Авторизацию как проходите? Адрес компа, с которого идет отправка, прописан как разрешенный в ТХТ-записи домена в DNS? Если домен почты не свой, а какой-либо сервис, бывают ограничения на пересылку, особенно если письмо опознается как спам.

Покажите содержимое Mail delivery failed, адреса заменить звездочками, главное текст ошибки.

Спасибо сказали: Gigi,

Gigi Подменю пользователя
сообщение 16.07.18, 17:50
Сообщение #15

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

proxy @ Сегодня, 17:25 * ,
Цитата(proxy @ 16.07.18, 17:25) *
Почта отправляется через какой-то промежуточный сервер посредством SMTP? Используется SSL/TLS? Авторизацию как проходите? Адрес компа, с которого идет отправка, прописан как разрешенный в ТХТ-записи домена в DNS? Если домен почты не свой, а какой-либо сервис, бывают ограничения на пересылку, особенно если письмо опознается как спам.

Покажите содержимое Mail delivery failed, адреса заменить звездочками, главное текст ошибки.

В принципе отправка по выше указанному коду. А вот что касается SSL/TLS если честно с этим слабо дружу... не очень волоку...
Просто я только что перепроверил... как уже выяснил .... почему до этого все работало... Дело в том, что у меня две копии Инфо-базы. Только форматы разные, Одна файловая, а другая серверная.
Так вот, когда я тестировал я это делал из файлового варианта базы. И там все работало КАК НАДО!
Но когда обновил базу уже в серверный формат и решил уже с сервера отправить письмо то столкнулся с выше указанной проблемой.
Поэтому получается что 1С почтовый клиент в файловом варианте работает как надо, а в серверном варианте почему то на некоторые почты получателя присылает такие сообщения:

Цитата
Mail delivery failed : returning message to sender (Письмо не может быть доставлено и возвращено отправителю)


Цитата
[необходимо зарегистрироваться для просмотра ссылки]

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to all of its recipients.
The following address(es) failed:

*******@mail.ru
host mxs.mail.ru [94.100.180.104]
SMTP error from remote mail server after end of data:
550 spam message rejected. Please visit [необходимо зарегистрироваться для просмотра ссылки] or report details to abuse@corp.mail.ru. Error code:
518313EC6E4EA2A5B90DEED48FED274143FA694AF0E89E8C41C164E996864FE1. ID:
0000000E00021BD60CC70F93.

Просьба объяснить что с этим делать?
И что именно нужно сделать что бы работало так же как на файловом варианте базы. И отправка доходила и не порождала такие сообщения
Буду очень признателен!

Zaval Подменю пользователя
сообщение 16.07.18, 17:56
Сообщение #16

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Цитата(Gigi @ 16.07.18, 17:38) *
Для теста создал две почты получателя ... оба на майл ру. И потом с программы послал обоим. И программа без сбоя обоим отправила. Только одно дошло а другое нет.

Порядок отправки меняли?

proxy Подменю пользователя
сообщение 16.07.18, 17:58
Сообщение #17

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 5 раз
Рейтинг: 0

Gigi @ Сегодня, 18:50 * ,
Самое банальное в ответе почтовой системы - 550 spam message rejected, т.е. формат письма был определен как спам. Нужно добавить в тело письма текст, если есть аттач - называть его без точек, т.е. должна точка быть только перед расширением. В общем стоит поработать над содержанием и оформлением письма, проблема именно в этом.

Что касается SQL и файловой базы, тут нужно внимательно к процедурам, так как в случае SQL часть из них может выполняться на сервере, а часть - на клиенте.

И да, перейдите по ссылке и там нажмите, что письмо ложно определено как спам. Бывает после нескольких таких детектов робот у Мейлру натаскивается и перестает ругаться на ваши письма.

Спасибо сказали: Gigi,

Gigi Подменю пользователя
сообщение 16.07.18, 18:14
Сообщение #18

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Zaval @ Сегодня, 17:56 * ,
Цитата(Zaval @ 16.07.18, 17:56) *
Порядок отправки меняли?

Еще как менял smile.gifsmile.gif
1) На два адреса через ";" результат один получатель получил а другой нет
2) пробовал каждого по отдельности и меняя последовательность smile.gif тот же самый результат. До одного адреса письмо доходит а до другого нет. Хотя оба на мейл ру. А отправитель на рамблере.
И самое смешное что в файловом варианте этих проблем и вовсе нет. При том, что то же самое ... те же самые параметры отправителя и получателей. Любой порядок отправки ... одной отправкой или по отдельности ВСЕ РАБОТАЕТ! И письма всегда ДОХОДЯТ!
Но почему в серверном варианте проблемы? Вот что не пойму.
Короче ... Буду признателен!


Цитата(Gigi @ 16.07.18, 18:04) *
В общем стоит поработать над содержанием и оформлением письма, проблема именно в этом.

Думаете в этом?
Но я понять не могу почему с файлового варианта базы нормально все работает. Параметры отправки ведь ОДИНАКОВЫЕ. Все одинаковое. Просто форматы баз разные.

Цитата(Gigi @ 16.07.18, 18:04) *
И да, перейдите по ссылке и там нажмите, что письмо ложно определено как спам. Бывает после нескольких таких детектов робот у Мейлру натаскивается и перестает ругаться на ваши письма.

Ладно попробую .. хотя не думаю что поможет
Цитата(Gigi @ 16.07.18, 18:04) *
Что касается SQL и файловой базы, тут нужно внимательно к процедурам, так как в случае SQL часть из них может выполняться на сервере, а часть - на клиенте.

скорее всего проблемы возникают в этом профиле. Но тут к сожалению теряюсь в том что именно надо делать.
Если не трудно конкретно ... что нужно сделать что бы в SQL все так же работало как в файловом варианте?
Буду благодарен!

proxy Подменю пользователя
сообщение 16.07.18, 18:28
Сообщение #19

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 5 раз
Рейтинг: 0

Цитата(Gigi @ 16.07.18, 19:14) *
Параметры отправки ведь ОДИНАКОВЫЕ. Все одинаковое.

Смотрите в чем нюанс:
1) один раз вы отправляете письмо с текстом "Привет" и вложенной картинкой - почтовая система чуть покривилась, поставила рейтинг СПАМ=3,5/5 но письмо пропустила
2) второй раз вы отправляете то же самое письмо, 1-в-1, с того же адреса. Почтовая система помнит, что уже такое было письмо, и рейтинг СПАМ поднимает до 4,5/5, но, опять же пропускает
3) третий раз письмо - рейтинг СПАМ=6/5 - письмо почтовая система заворачивает, как спам.

Можете для теста вернуться на файловый вариант и отправить повторно то же письмо. Даю 99.9% гарантии, что письмо не дойдет.

Почтовые системы уже давно обучаются и не пропускают однотипные письма с одного адресата. Это раньше можно было по 50 одинаковых рассылать. Теперь для таких целей есть специальные сервисы рассылок, чтобы адрес не заблокировали после первой же попытки разослать много одинаковых писем.

Попробуйте поменять содержимое письма - добавте текста, типа "Вас приветствует чупакабра. Рады вам сообщить %текст_оригинального_письма%. С увлажнением, царь" и попробуйте отправку wink.gif

Спасибо сказали: Gigi,

Zaval Подменю пользователя
сообщение 16.07.18, 18:46
Сообщение #20

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Цитата(Gigi @ 16.07.18, 19:14) *
Но я понять не могу почему с файлового варианта базы нормально все работает. Параметры отправки ведь ОДИНАКОВЫЕ. Все одинаковое. Просто форматы баз разные.

А еще, возможно, темп отправок.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 17:16
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!