Почти все почтовые сервисы перешли на использование SSL и для получения почты нужно использовать IMAP, можно конечно и POP, но это уже прошлый век )
Пример получения почты с mail.ru по IMAP используя SSL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 |
Функция ПолучитьНовыеПисьма() Экспорт Почта = Новый ИнтернетПочта; ИспользоватьIMAP=Истина; ПочтовыйЯщик = ""; Профиль = ПолучитьПрофиль(); Попытка Если ИспользоватьIMAP Тогда Почта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP); Если ПочтовыйЯщик = "" Тогда ПочтовыйЯщик = "INBOX"; КонецЕсли; Почта.ТекущийПочтовыйЯщик = ПочтовыйЯщик; Иначе; Почта.Подключиться(Профиль, ПротоколИнтернетПочты.POP3); КонецЕсли; Исключение Сообщить(НСтр("ru = 'Ошибка при подключении к почтовому серверу. Проверьте настройки.'")); Сообщить(ОписаниеОшибки()); Возврат 0; КонецПопытки; ЗагруженныеПисьма = ПолучитьИдентификаторыЗагруженныхПисем(); ИдентификаторыНовыхПисем = Почта.ПолучитьИдентификаторы(ЗагруженныеПисьма); Если ИдентификаторыНовыхПисем.Количество() = 0 Тогда //Новых нет Иначе //Получаем новые письма Письма = Почта.Выбрать(Ложь, ИдентификаторыНовыхПисем,Истина); Для каждого Письмо Из Письма Цикл Если Найти(Письмо.Тема,"siteabc.ru")>0 Тогда //Если это наше письмо то грузим его ПисьмоОбъект = Справочники.ВходящиеПисьма.СоздатьЭлемент(); ПисьмоОбъект.Идентификатор = Письмо.Идентификатор[0]; ПисьмоОбъект.Наименование = Письмо.Тема; ПисьмоОбъект.Дата = Письмо.ДатаОтправления; ПисьмоОбъект.Отправитель = Письмо.Отправитель; Если ИспользоватьIMAP Тогда ПисьмоОбъект.ПочтовыйЯщик = "IMAP/" + ПочтовыйЯщик; Иначе ПисьмоОбъект.ПочтовыйЯщик = "POP3"; КонецЕсли; Для каждого Элемент Из Письмо.Тексты Цикл Если Элемент.ТипТекста = ТипТекстаПочтовогоСообщения.HTML Тогда ПисьмоОбъект.ВидСодержимого = "HTML"; Текст = Элемент.Текст; Если Найти(Текст, "<HTML>") = 0 Тогда Текст = "<HTML><BODY>" + Текст + "</BODY></HTML>"; КонецЕсли; //Вложения = Новый Массив; //// обрабатываем вложения, что бы правильно сформировать HTML //Для каждого Вложение Из Письмо.Вложения Цикл // Ид = "cid:" + Вложение.Идентификатор; // Если Найти(Текст, Ид) <> 0 Тогда // Вложения.Добавить(Вложение); // КонецЕсли; //КонецЦикла; Прервать; ИначеЕсли Элемент.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст Тогда ПисьмоОбъект.ВидСодержимого ="Текст"; Текст = Элемент.Текст; КонецЕсли; КонецЦикла; ПисьмоОбъект.Текст = Текст; ПисьмоОбъект.Записать(); КонецЕсли; КонецЦикла; КонецЕсли; Почта.Отключиться(); Функция ПолучитьПрофиль(ИмяОтправителя = "", ИспользоватьIMAP = Ложь) Экспорт Профиль = Новый ИнтернетПочтовыйПрофиль; Профиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная; Профиль.POP3ПередSMTP=Ложь; Профиль.АдресСервераIMAP = "imap.mail.ru"; Профиль.ПортIMAP = 993; Профиль.ИспользоватьSSLIMAP = Истина; Профиль.ПользовательIMAP ="siteabcz@mail.ru"; Профиль.ПарольIMAP = "9Ljkuf"; Профиль.ТолькоЗащищеннаяАутентификацияIMAP = Ложь; Возврат Профиль; КонецФункции Функция ПолучитьИдентификаторыЗагруженныхПисем() Экспорт Идентификаторы = Новый Массив(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Идентификатор ИЗ Справочник.ВходящиеПисьма"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Идентификаторы.Добавить(Выборка.Идентификатор); КонецЦикла; Возврат Идентификаторы; КонецФункции /// ЕЩЕ примеры настройки профиля Функция ПолучитьПрофиль(ИмяОтправителя = "", ИспользоватьIMAP = Ложь) Экспорт //Профиль = Новый ИнтернетПочтовыйПрофиль; //Профиль.АдресСервераSMTP = Выборка.АдресSMTPСервера; //Профиль.ПортSMTP = Выборка.ПортSMTP; //Профиль.ИспользоватьSSLSMTP = Выборка.SSLSMTP; //Профиль.ПарольSMTP = Выборка.ПарольSMTP; //Профиль.ПользовательSMTP = Выборка.ПользовательSMTP; //Профиль.ТолькоЗащищеннаяАутентификацияSMTP = Ложь; // //Профиль.АдресСервераIMAP = Выборка.АдресIMAPСервера; //Профиль.ПортIMAP = Выборка.ПортIMAP; //Профиль.ИспользоватьSSLIMAP = Выборка.SSLIMAP; //Профиль.ПользовательIMAP = Выборка.ПользовательIMAP; //Профиль.ПарольIMAP = Выборка.ПарольIMAP; //Профиль.ТолькоЗащищеннаяАутентификацияIMAP = Ложь; // //Профиль.АдресСервераPOP3 = Выборка.АдресPOP3Сервера; //Профиль.ПортPOP3 = Выборка.ПортPOP3; //Профиль.ИспользоватьSSLPOP3 = Выборка.SSLPOP3; //Профиль.Пароль = Выборка.ПарольPOP3; //Профиль.Пользователь = Выборка.ПользовательPOP3; //Профиль.ТолькоЗащищеннаяАутентификацияPOP3 = Ложь; // //Профиль.ВремяОжидания = Выборка.ТаймаутИнтернетПочты; // //ИмяОтправителя = Выборка.ИмяОтправителяПочтовогоСообщения; //ИспользоватьIMAP = Выборка.ИспользоватьIMAP; // Профиль = Новый ИнтернетПочтовыйПрофиль; //Профиль.АдресСервераSMTP = "smtp.mail.ru"; //Профиль.ПортSMTP = 465; //Профиль.ИспользоватьSSLSMTP = Истина; //Профиль.ПарольSMTP ="9LEY"; //Профиль.ПользовательSMTP = "siteabcz@mail.ru"; //Профиль.ТолькоЗащищеннаяАутентификацияSMTP = Истина; //Профиль.Пользователь = "siteabcz@mail.ru"; //Профиль.Пароль = "siteabcz"; //Профиль.АдресСервераPOP3 = "pop.mail.ru"; //Профиль.ПортPOP3 = 995; //Профиль.ИспользоватьSSLPOP3 = Истина; Профиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная; Профиль.POP3ПередSMTP=Ложь; Профиль.АдресСервераIMAP = "imap.mail.ru"; Профиль.ПортIMAP = 993; Профиль.ИспользоватьSSLIMAP = Истина; Профиль.ПользовательIMAP ="siteabcz@mail.ru"; Профиль.ПарольIMAP = "siteabcz"; Профиль.ТолькоЗащищеннаяАутентификацияIMAP = Ложь; Возврат Профиль; КонецФункции //ОБЩИЙ ПРИМЕР ОТПРАВКИ и ПОЛУЧЕНИЯ Функция ОтправитьПисьмо(EmailОтправителя, ПарольОтправителя, Порт, АдресСервера, EmailПолучателя, ИмяПолучателя, ТекстСообщения, ЗаголовокСообщения, МассивФайловыхПутей) //ПОЧТОВЫЙ ПРОФИЛЬ Профиль = Новый ИнтернетПочтовыйПрофиль; Профиль.ИспользоватьSSLSMTP = Истина; Профиль.АдресСервераSMTP = АдресСервера; Профиль.ПортSMTP = Порт; Профиль.Пользователь = EmailОтправителя; Профиль.Пароль = ПарольОтправителя; Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию; Профиль.ПарольSMTP = ПарольОтправителя; Профиль.ПользовательSMTP = EmailОтправителя; //ПОЧТОВОЕ СООБЩЕНИЕ Сообщение = Новый ИнтернетПочтовоеСообщение; Сообщение.Отправитель = EmailОтправителя; Сообщение.Тема = ЗаголовокСообщения; Сообщение.Тексты.Добавить(ТекстСообщения, ТипТекстаПочтовогоСообщения.HTML); Сообщение.Организация = "The company"; Адрес = Сообщение.Получатели.Добавить(EmailПолучателя); Адрес.ОтображаемоеИмя = ИмяПолучателя; Для каждого ПутьКФайлу Из МассивФайловыхПутей Цикл Сообщение.Вложения.Добавить(ПутьКФайлу); КонецЦикла; // ПОЧТОВЫЙ СЕРВЕР Почта = Новый ИнтернетПочта(); //Подключение к серверу Попытка Почта.Подключиться(Профиль); Исключение Сообщить("Ошибка при подключении к серверу: " + ОписаниеОшибки()); Возврат Ложь; КонецПопытки; //Отправка письма Попытка Почта.Послать(Сообщение); Исключение Почта.Отключиться(); Сообщить("Ошибка при отправке письма: " + ОписаниеОшибки()); Возврат Ложь; КонецПопытки; Почта.Отключиться(); Возврат Истина; КонецФункции Функция ПолучитьПисьма() //ПОЧТОВЫЙ ПРОФИЛЬ Профиль = Новый ИнтернетПочтовыйПрофиль; Профиль.Пользователь = "xxx@xxxx.xx"; Профиль.Пароль = "xxxxxx"; Профиль.АдресСервераPOP3 = "pop3.mail.ru"; ПРофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная; МассивПисем = Новый массив(); //ПОЛУЧЕНИЕ ПИСЕМ Попытка Почта = Новый ИнтернетПочта; Почта.Подключиться(Профиль); МассивПисем = Почта.Выбрать(Ложь); Исключение Сообщить("Ошибка получения почты " + ОписаниеОшибки()); КонецПопытки; Возврат МассивПисем; КонецФункции |