Некоторые вопросы по отправке email средствами Delphi

3 минуты на чтение

Всем привет, в самом начале открытия данного сайта, я писал статьи по отправке email средствами Delphi, а также отправке sms-сообщений , где использовал компонент TidSMTP. Возможно в тех статьях, я рассмотрел не все аспекты по работе с email, вот мне один из пользователей моего блога задал следующие вопросы:

  1. Кодировка текста при отправке почты.
  2. Запрос о доставке и прочтении писем.
  3. Отправка письма сразу на несколько адресов, как в outlook.

На них я пообщел, в ближайшее время, дать ответ. Вот и настал тот самый момент, когда я хотел бы ответить на данные вопросы.

Что касается кодировки текста тела email-сообщения, я не освещал это дело, так как это очень часто и много раз освещалось на различных форумах о программировании. Тем более в некоторых версиях Indy с кодировкой вроде бы, как в порядке. Но раз пользователь спросил я отвечу.

Для преобразования кодировки сообщения существует множество способов, я например, пользуюсь : либо статьей из DelphiWorld: Как можно перекодировать сообщение (содержание) из Win в КОИ8-Р для отправки по EMail.

Либо, некоторым может также помочь, указав кодировку в самом письме, через свойство компоненте TIdMessage, например:

var
 MSG:TIdMessage;
begin
 MSG.Charset:='UTF-8';
end;

Но тогда, сам текст письма, также не забывайте перекодировать в соответсвующую кодировку, например:

MSG.Body.Text:=UTF8Encode('текст');

Либо

MSG.Body.Text:=AnsiToUtf8('текст');

Ну вот вроде бы, что касается кодировки и все.

Переходим ко второму вопросу, вопрос о доставке и прочтении писем. То есть возьмем для примера тот же самый Microsoft Outlook, в котором, когда читаешь сообщение, сразу заноситься в папку Прочитанные, так вот, насколько я знаю в компоненте TIdMessage нету такого флага, который может отслеживать прочитанные или непрочитанные, это все реализуется в самих почтовых программах. То есть, в самое программе отслеживается, если это письмо было открыто, то оно заноситься в папку Прочитанные, поэтому данный пункт необходимо реализовывать самим.

Что касается отправки письма, сразу нескольким адресатам, как в том же самом Microsoft Outlook, то когда Вы указываете адресат получателя, то просто-напросто необходимо указывать их через запятую, например:

msg.Recipients.EMailAddresses:='email1@mail.ru,email2@yandex.ru';

Либо есть второй вариант, можно отправить письмо, затем отключиться и отправить письмо следующему адресату, то есть организовать это все дело через цикл, но таким способом немного можно отправить до 100 сообщений, так как почтовый сервер не дает так часто подключаться к нему, если только он для таких целей предоставляет отдельный порт.


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


Facebook Vk Ok Twitter LinkedIn Telegram

Похожие записи:

Плавно подходим мы к отправке sms-сообщений через sms-шлюз операторов сотовой связи. В данной статье мы рассмотрим как вообще можно отправить сообщение (email-сообщение) средствами Delphi. Отсылать email-сообщения мы будем через TidSMTP. То есть получается, чт...
Ну вот наконец-то, мы добрались и до отправке sms-сообщений через sms-шлюз средствами Delphi. Теоретическую часть sms-шлюза мы знаем, а также знаем как отправлять email-сообщения средствами Delphi. Это нам все и пригодится в данной статье. Давайте вспомним, чт...
Итак мы многое уже знаем, как отправлять email-сообщения средствами Delphi, через smtp-сервер. Как мы знаем для этого нам нужен компонент TidSMTP ну и конечно же как же без него — это TidAntiFreeze. Также мы уже в курсе как отправлять смс-сообщения, используя ...