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

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

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

В чем причина?
Буду признателен!
Bernet
Gigi @ Сегодня, 10:18 необходимо зарегистрироваться для просмотра ссылки ,
Судя по всему что-то не так с почтой, вы уверены что правильно ввели email адрес?
Gigi
Bernet @ Сегодня, 9:28 необходимо зарегистрироваться для просмотра ссылки ,
Цитата(Bernet @ 19.06.18, 9:28) необходимо зарегистрироваться для просмотра ссылки
вы уверены что правильно ввели email адрес?

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

Gigi @ Сегодня, 9:36 необходимо зарегистрироваться для просмотра ссылки ,
А вот еще на счет портов и т.д.
необходимо зарегистрироваться для просмотра ссылки
Короче ... Хотел понять в чем ошибка. В чем причина сбоя
И буду весьма..
Bernet
Gigi @ Сегодня, 10:18 необходимо зарегистрироваться для просмотра ссылки ,
Кстати, добавьте строки:
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.ИспользоватьSSLPOP3 = Истина;

SSL шифрование обязательно и для gmail и для mail.ru вроде бы
Gigi
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
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   = "";
    КонецЕсли;
    
    Возврат Профиль;

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


УчетнаяЗапись - это справочник, где хранятся логин, пароль и все остальные настойки доступа к почте. Сравните с вашим, может быстрее найдете в чем проблема
Gigi
Bernet @ Сегодня, 10:40 необходимо зарегистрироваться для просмотра ссылки ,
Ну ладно!
Выше указанным способом никак не получается.
Пробовал даже
необходимо зарегистрироваться для просмотра ссылки
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 необходимо зарегистрироваться для просмотра ссылки ,
Просмотрел эту статью:
необходимо зарегистрироваться для просмотра ссылки
Короче 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
Gigi, Ваш код работает, во всяком случае проверил на Gmail.
Попробуйте изменить способ аутентификации
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;

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

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

Заведите ящик на GMail smile.gif
Batchir
1. необходимо зарегистрироваться для просмотра ссылки
2. необходимо зарегистрироваться для просмотра ссылки
3. Не забываем что мэйл ру не дружит с некоторыми странами
barul4ik
Для отправки писем из 1С использовал утилиту stunnel.
необходимо зарегистрироваться для просмотра ссылки
Bernet
barul4ik @ Сегодня, 9:40 необходимо зарегистрироваться для просмотра ссылки ,
Эту утилиту нужно было юзать с платформой 8.2, которая не поддерживала SSL-шифрование. 8.3 уже поддерживает, использовать эту утилиту уже не обязательно
Gigi
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
Gigi @ 20.06.18, 10:52 необходимо зарегистрироваться для просмотра ссылки ,
Опять привет!
Гууу... возвращаюсь опять к этой теме... клянусь сил больше нет...
Думал написал почтовый клиент в 1С который супер облегчает работу .. позволяет одним махом посылать отчеты нескольким получателям (которых 40 или 70).... с уже указанными почтовыми адресами и адресами файлов на диске для отправки.
Программа, которая все это позволяет делать одним махом... без необходимости каждый раз открывать почту и каждому прикреплять файл и тратить на это время. Просто открыл форму и нажал на отправить и все.
Но разве может быть так... думал написал и ЗАКРЫЛ ВОПРОС! Нееет опять всплывает.
Я просто никак не пойму. Уже сто раз тестировал. Все было нормально. Никаких сбоев. Но недавно попробовал послать а в итоги программа на все почты посылает и не дает ошибку. Т.е. там в коде условие... если не нашла почту то должна сообщить что почта не найдена. Поэтому вроде сама программа не выдает такие сообщения и сообщает об успешной доставке.. как прописал в коде. Только вот зайдя в браузер и открыв ту почту с которого слал письма приходят: "Mail delivery failed ". И самое смешное что такое приходит от некоторых адресов а от некоторых нет.
Для теста создал две почты получателя ... оба на майл ру. И потом с программы послал обоим. И программа без сбоя обоим отправила. Только одно дошло а другое нет.
О Господи ... ЧТО ЭТО ТАКОЕ? Я одурею ... сколько можно талдычить одно и то же. СТО РАЗ ПРОВЕРЯЛ... Вроде работало.
Пожалуйста подскажите!
Буду признателен!
proxy
Gigi @ Сегодня, 17:38 необходимо зарегистрироваться для просмотра ссылки ,
Почта отправляется через какой-то промежуточный сервер посредством SMTP? Используется SSL/TLS? Авторизацию как проходите? Адрес компа, с которого идет отправка, прописан как разрешенный в ТХТ-записи домена в DNS? Если домен почты не свой, а какой-либо сервис, бывают ограничения на пересылку, особенно если письмо опознается как спам.

Покажите содержимое Mail delivery failed, адреса заменить звездочками, главное текст ошибки.
Gigi
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
Цитата(Gigi @ 16.07.18, 17:38) необходимо зарегистрироваться для просмотра ссылки
Для теста создал две почты получателя ... оба на майл ру. И потом с программы послал обоим. И программа без сбоя обоим отправила. Только одно дошло а другое нет.

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

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

И да, перейдите по ссылке и там нажмите, что письмо ложно определено как спам. Бывает после нескольких таких детектов робот у Мейлру натаскивается и перестает ругаться на ваши письма.
Gigi
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
Цитата(Gigi @ 16.07.18, 19:14) необходимо зарегистрироваться для просмотра ссылки
Параметры отправки ведь ОДИНАКОВЫЕ. Все одинаковое.

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

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

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

Попробуйте поменять содержимое письма - добавте текста, типа "Вас приветствует чупакабра. Рады вам сообщить %текст_оригинального_письма%. С увлажнением, царь" и попробуйте отправку wink.gif
Zaval
Цитата(Gigi @ 16.07.18, 19:14) необходимо зарегистрироваться для просмотра ссылки
Но я понять не могу почему с файлового варианта базы нормально все работает. Параметры отправки ведь ОДИНАКОВЫЕ. Все одинаковое. Просто форматы баз разные.

А еще, возможно, темп отправок.
andr_andrey
Если письма одинаковые, посылать одновременно как СкрытаяКопия не предлагать?
proxy
Цитата(andr_andrey @ 16.07.18, 21:17) необходимо зарегистрироваться для просмотра ссылки
посылать одновременно как СкрытаяКопия не предлагать

Это для получателя копия выходит скрытая, а почтовый сервер то все адреса видит. Может пропустит, может на части адресов начнет заворачивать доставку - тут как повезет. Раньше 50 адресатов было ОК, сейчас наверное около 10ти. Хотя, если письмо не однострочное, или пустое с картинкой-вложением, может и на больше адресатов пропустит.

Можно попробовать пересылать от Гугла, вместо Мейлру.

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

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

В принципе я это предполагал, но в деталях не знал как почтовый сервис определяет сообщение как спам.
Короче ... я сделал проще. И к счастью РЕШИЛ ВОПРОС!
Сперва отправил всем одним махом.... потом взял список абонентов (получателей) и стал каждому тупо звонить и просить их что бы они проверили папку спам на наличие посланного сообщения. И если оно туда попало, что именно так и было, то изъять ее из папки спам, перебросив в папку входящие.
В принципе можно так я думаю. Минус в том что абонентов 50 и больше, но плюс в том что это всего один раз можно не полениться сделать. А уже после думаю любое сообщение от изъятого из спама адреса будет всегда оказываться во входящих В ЛЮБОМ СЛУЧАЕ.
ВЕДЬ ТАК? Если не так просьба дать знать..
Но я так попробовал сделать только с получателями ****@mail.ru. И сработало. Письма после этого были в списке "входящие"
Поэтому вопрос, ответ на который думаю что положительный ... просто хочу получить подтверждение.
Если так же с делать с получателями не только mail.ru, но с gmail.com,rambler.ru,yahoo.com,yandex.ru и т.д. надеюсь так же сработает как с mail.ru?
proxy
Цитата(Gigi @ 17.07.18, 11:44) необходимо зарегистрироваться для просмотра ссылки
изъять ее из папки спам, перебросив в папку входящие

Если при этом письмо не просто переместили между папками, а нажимали кнопку "пометить как не спам", то следующее письмо с аналогичным содержимым от того же адресата почтовый сервер скорее всего пропустит. Но 100% гарантии, что теперь все письма всегда будут проходить - нет. У некоторых почтовых сервисов можно внести адрес в "белый список" - письма от таких отправителей всегда считаются не спам.

Однако, нужно понимать, что если почтовый сервер ответил отказом на доставку на какой-то адрес, письмо этом адресату не попало, даже в папку спам.
Gigi
Цитата(proxy @ 17.07.18, 10:55) необходимо зарегистрироваться для просмотра ссылки
Если при этом письмо не просто переместили между папками, а нажимали кнопку "пометить как не спам", то следующее письмо с аналогичным содержимым от того же адресата почтовый сервер скорее всего пропустит. Но 100% гарантии, что теперь все письма всегда будут проходить - нет. У некоторых почтовых сервисов можно внести адрес в "белый список" - письма от таких отправителей всегда считаются не спам.

Однако, нужно понимать, что если почтовый сервер ответил отказом на доставку на какой-то адрес, письмо этом адресату не попало, даже в папку спам.

Понятно!
Ну в принципе как понимается, у каждого почтового сервиса своя специфика. Но в случае с маилРу приходило сообщение "Mail delivery failed : returning message to sender (Письмо не может быть доставлено …" и при этом каждый раз сообщение оказывалось в папке спам. И тут я естественно говорил абонентам что бы они не просто из папки в другую перемещали сообщение, а помечали его галочкой и воспользовались кнопкой "Не спам" на МейлРу.
Поэтому у МайлРу так, а у других наверно или аналогично или чуть по другому. И я думаю что нужно разобраться как у каждого сервиса с настройками.
Ладно! Спасибо!
Пока!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.