Delphi - есть ли способ отредактировать формат и макет электронной почты SMTP?

0

Я создаю систему баз данных, которая отправляет электронные письма через веб-почту на веб-сайте хостинга "one.com".

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

Есть ли способ сделать это с помощью текущего кода? Если нет, есть способ добавить html-изменения в тело электронной почты. Я попытался добавить html-теги в текст сообщения, но они не распознаются как теги html. Это связано с тем, как электронная почта отправляется через delphi или как работает сайт one.com?

procedure SendExpiringEmail(MemName: string; ExpDate: string; MemEmail: string);
    var
      IdSMTP: TIdSMTP;
      IdMessage: TIdMessage;
      IdEmailAddressItem: TIdEmailAddressItem;
      SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
      EETextFile: TextFile;
      fileline: string;    
    begin
          IdSMTP := TIdSMTP.Create(nil);
          try
            IdSMTP.Host := 'send.one.com';
            IdSMTP.Port := 465;
            SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
            idsmtp.IOHandler :=  SSLHandler;
            IdSMTP.UseTLS := utUseImplicitTLS;
            IdSMTP.AuthType := satDefault;
            IdSMTP.Username := 'USERNAME';
            IdSMTP.Password := 'PASSWORD';
            IdSMTP.Connect;
            AssignFile(EETextFile, 'C:\MHExpEmailBody.txt');
            Reset(EETextFile);
            if IdSMTP.Authenticate then
            begin
              IdMessage := TIdMessage.Create(nil);
              try
                IdMessage.From.Name := 'NAME';
                IdMessage.From.Address := 'ADDRESS';
                IdMessage.Subject := 'It looks like your membership is about to expire!';
                IdMessage.Body.Add(+MemName);
                IdMessage.Body.Add('');
                while not EOF(EETextFile) do
                  begin
                    ReadLn(EETextFile, fileline);
                    IdMessage.Body.Add(fileline)
                  end;
                IdMessage.Body.Add('');
                IdMessage.Body.Add('We look forward to seeing you. Take Care!');
                IdEmailAddressItem := IdMessage.Recipients.Add;
                IdEmailAddressItem.Address := MemEmail;
                IdSMTP.Send(IdMessage);
              finally
                IdMessage.Free;
              end;
            end;
            IdSMTP.Disconnect;
            Close(EETextFile);
          finally
            IdSMTP.Free;
          end;
        end;

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

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

  • 0
    Вы используете Инди. Это компонент с открытым исходным кодом третьей стороной.
  • 1
    Возможный дубликат создания электронной почты HTML со встроенными изображениями в Delphi . Смотрите также stackoverflow.com/a/16289577/33732
Показать ещё 3 комментария
Теги:
email
smtp

2 ответа

0
Лучший ответ

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

Добавьте IdText в предложение uses.

Затем используйте этот фрагмент кода:

with TIdText.Create(IdMessage1.MessageParts, nil) do begin
  Body.Text := 'HTML goes here';
  //Or use Body.Add('HTML goes here');
  ContentType := 'text/html';
end;

IdMessage1.ContentType := 'multipart/alternative';

Теги HTML будут распознаваться автоматически.

0

Установите IdMessage.ContentType в текст /html. Затем отформатируйте тело сообщения с помощью HTML-тегов. Однако не забудьте проверить свои электронные письма через различные почтовые клиенты. Электронная почта, полученная как HTML, имеет нюансы в разных клиентах. Вы обычно полагаетесь на устаревшие и устаревшие способы стилизации содержимого электронной почты.

Сделайте веб-поиск по "созданию html-адресов электронной почты", чтобы помочь вам начать работу с тем, как отформатировать HTML-код, чтобы почтовые клиенты подготовили его правильно.

Или начинайте здесь http://sixrevisions.com/web_design/creating-html-emails/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню