Имя: Пароль:
1C
 
SMTP error code 501, 5.1.3 Bad recipient address syntax
0 Ksandr
 
17.05.11
11:43
Не получается отправить сообщение, ошибка такая:

Ошибка при вызове метода контекста (Послать): Неверный синтаксис команды. Возможно ошибка в написании почтового адреса (SMTP error code 501, 5.1.3 Bad recipient address syntax)
   ИнтернетПочта.Послать(Сообщение);
по причине:
Неверный синтаксис команды. Возможно ошибка в написании почтового адреса (SMTP error code 501, 5.1.3 Bad recipient address syntax)

как лечить?
кодировка адресов: US-ASCII
адреса вида "<blabla@bla.bl>" только без ковычек
1 ДенисЧ
 
17.05.11
11:52
и адрес в <> ?
2 shuhard
 
17.05.11
11:57
(0) отправь письмо telnet-ом
3 smaharbA
 
17.05.11
11:59
(1) это какбы должно быть, вот только не знаю, может ИнтернетПочта сама вставляет, тогда конечно будет ошибка
4 Ksandr
 
18.05.11
10:52
а нет ли у кого куска кода, который действенно работает на яндекс или рамблер почте?
5 smaharbA
 
18.05.11
11:45
на яндек нужно парольно отправлять
6 Ksandr
 
18.05.11
11:48
(5) это как?
7 Ksandr
 
18.05.11
13:46
уже что только не пробовал. не работает и все тут
8 Ksandr
 
18.05.11
13:47
Код:


Функция СоздатьСообщение(Получатели, Отправитель, Тема,
                       ТелоПисьма, Вложения = Неопределено,
                       Копии = Неопределено, СлепыеКопии=Неопределено) Экспорт

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

Процедура ОтправитьСообщение(Сообщение, ПараметрыОтправки = Неопределено) Экспорт
   
   ИнтернетПочтовыйПрофиль = Новый ИнтернетПочтовыйПрофиль;
   ИнтернетПочтовыйПрофиль.АдресСервераSMTP = "smtp.yandex.ru";
   
   ИнтернетПочтовыйПрофиль.Пользователь = "";
   ИнтернетПочтовыйПрофиль.Пароль = "";
   
   ИнтернетПочтовыйПрофиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
   ИнтернетПочтовыйПрофиль.ПользовательSMTP = "";
   ИнтернетПочтовыйПрофиль.ПарольSMTP = "";
   
   ИнтернетПочта = Новый ИнтернетПочта;
   Попытка
       ИнтернетПочта.Подключиться(ИнтернетПочтовыйПрофиль);
   Исключение
       Сообщить(ОписаниеОшибки());
       Возврат;
   КонецПопытки;
   
   ИнтернетПочта.Послать(Сообщение);
   ИнтернетПочта.Отключиться();
   
КонецПроцедуры
9 Amra
 
18.05.11
13:48
Есть работающий код с меил.ру, думаю для рамблера и яндекса все тоже самое
10 Ksandr
 
18.05.11
13:49
(9) поделись, пожалуйста
11 smaharbA
 
18.05.11
13:49
на яндекс смтп сервер требует авторизацию такую же как на прием
как это будет в восьмерке представления не имею
и выкинь из адресов знаки больше/меньше, они скорее всего подставляются и так объектом
12 Amra
 
18.05.11
13:50
(8) А где в коде создания сообщения указываешь адресс отправителя?
13 Ksandr
 
18.05.11
13:53
(12)
Сообщение.Отправитель = Отправитель;
   ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
   Сообщение.ИмяОтправителя = ТекПользователь;
14 Amra
 
18.05.11
13:55
Что в переменной "отправитель"? Попробуй жестко прописать
Сообщение.Отправитель.Адрес="blabla@bla.bl";
15 Ksandr
 
18.05.11
13:59
(14) ничего не меняется.
Вопрос в том, что ругается на bad recipient adress syntax, т.е. на адрес получателя
16 Ksandr
 
18.05.11
14:02
17 Amra
 
18.05.11
14:10
А что в Сообщение.Получатели[0]?
18 smaharbA
 
18.05.11
14:20
какого они в кавычках ?
или это просто форма так сделана ?
19 Ksandr
 
18.05.11
14:38
(18) т.к. тип строковый.
(17) http://s015.radikal.ru/i333/1105/a6/624ba3fab883.png
20 Amra
 
18.05.11
14:55
(19) Странно, вроде все ок
21 Ksandr
 
18.05.11
15:21
ап
22 Ksandr
 
18.05.11
17:51
Внимание! Правильный ответ:
когда в копии и скрытые копии передавались пустые строки тогда создавался массив с элементом "" - пустая строка и этот адрес (пустая строка), добавлялся в список копий и скрытых копий и как следствие почтовые сервера ругались на Bad recipient address syntax.