mrseagull Опубликовано 24 апреля, 2015 Поделиться Опубликовано 24 апреля, 2015 Надо реализовать функцию отправки сообщений на почту в приложении на android и ios. Рад любой информации по этому вопросу. Спасибо. Ссылка на комментарий
0 Yarpda Опубликовано 24 апреля, 2015 Поделиться Опубликовано 24 апреля, 2015 Работат с почтой в FM ничем не отличается от работы в VCL, компоненты TIdSMTP, TidPOP присутствуют. Можно и через TIdTCPClient сделать вручную. В общем информации по этой теме в инете море... Ссылка на комментарий
0 mrseagull Опубликовано 24 апреля, 2015 Автор Поделиться Опубликовано 24 апреля, 2015 Работат с почтой в FM ничем не отличается от работы в VCL, компоненты TIdSMTP, TidPOP присутствуют. Можно и через TIdTCPClient сделать вручную. В общем информации по этой теме в инете море... Спасибо за наводку. Думал свои особенности есть у платформы в этом плане. Ссылка на комментарий
0 Vitaldj Опубликовано 24 апреля, 2015 Поделиться Опубликовано 24 апреля, 2015 Надо реализовать функцию отправки сообщений на почту в приложении на android и ios. Рад любой информации по этому вопросу. Спасибо. Реализовывал через TIdSMTP, как и написал предыдущий оратор. Но встретился с рядом проблем, хочу поделиться с вами частичными решениями. Дело в том, что года 2-3 назад, многие почтовые сервисы перешли на авторизацию через ssl и тд и тп. На это я и напоролся. Решил проблему пока только с почтой яндекса, с маил.ру не решил и бросил. Но все по порядку. Используемые компоненты: IdAntiFreeze1: TIdAntiFreeze; MailMessage: TIdMessage; IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL; IdServerIOHandlerSSLOpenSSL1: TIdServerIOHandlerSSLOpenSSL; SMTP: TIdSMTP; Далее, в вашем обработчике пишите код: SMTP.Host:= 'smtp.yandex.ru' ; // хост SMTP.Port:= 465 ; // порт Smtp.Username:= ''; //edit3.Text; // почтовый адрес Smtp.Password:= '';// edit4.Text; // пароль Для авторизации, обязательно! SMTP.UseTLS :=utUseImplicitTLS ; SMTP.Port:= 465 ; IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(nil); IdSSLIOHandlerSocketOpenSSL1.Destination := SMTP.Host+':'+IntToStr(SMTP.Port); IdSSLIOHandlerSocketOpenSSL1.Host := SMTP.Host; IdSSLIOHandlerSocketOpenSSL1.Port := SMTP.Port; IdSSLIOHandlerSocketOpenSSL1.DefaultPort := 0; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned; SMTP.IOHandler := IdSSLIOHandlerSocketOpenSSL1; MailMessage.CharSet := 'KOI8-R'; MailMessage.From.Name:= ''; // имя MailMessage.Subject:= 'Проверка электронного ящика пользователя.' ; // тема MailMessage.From.Address:= 'адрес с которого посылаете' ; MailMessage.From.Domain:= 'yandex.ru'; // домен MailMessage.From.User := 'PharmSuitePro'; MailMessage.From.Name := 'PharmSuitePro'; MailMessage.Recipients.EMailAddresses:= ''; // получатель и копия MailMessage.Body.Text: // тело письма MailMessage.IsEncoded:=true; MailMessage.ContentType:='text/plain; charset=KOI8-R'; Коннект и посыл, можно в try SMTP.Connect; SMTP.Send(MailMessage); Это потом: SMTP.Disconnect(); Попробовал на компе, все получилось, но когда стал пробовать на реальном сервере, пришла ошибка, пришлось обновлять open SSL, и все заработало! xenon54 1 Ссылка на комментарий
Вопрос
mrseagull
Надо реализовать функцию отправки сообщений на почту в приложении на android и ios. Рад любой информации по этому вопросу. Спасибо.
Ссылка на комментарий
3 ответа на этот вопрос
Рекомендуемые сообщения