Я создаю систему баз данных, которая отправляет электронные письма через веб-почту на веб-сайте хостинга "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;
Любое понимание того, как все будет работать, будет очень благодарным, поскольку я все еще участвую. Благодарю.
Мне просто нужно иметь возможность редактировать формат сообщения и, возможно, добавлять фотографии, если это возможно.
Изменение: я хотел бы добавить, что предпочел бы, чтобы сторонние компоненты с открытым исходным кодом не предлагались, поскольку я считаю их сложными для реализации.
На всякий случай кто-то спотыкается об этом, одна из ссылок, предложенных ранее, помогла. В заключение я смог прийти к выводу, но у меня не было достаточного количества точек ответа, чтобы опубликовать ответ. Спасибо всем за помощь в любом случае.
Добавьте 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 будут распознаваться автоматически.
Установите IdMessage.ContentType в текст /html. Затем отформатируйте тело сообщения с помощью HTML-тегов. Однако не забудьте проверить свои электронные письма через различные почтовые клиенты. Электронная почта, полученная как HTML, имеет нюансы в разных клиентах. Вы обычно полагаетесь на устаревшие и устаревшие способы стилизации содержимого электронной почты.
Сделайте веб-поиск по "созданию html-адресов электронной почты", чтобы помочь вам начать работу с тем, как отформатировать HTML-код, чтобы почтовые клиенты подготовили его правильно.
Или начинайте здесь http://sixrevisions.com/web_design/creating-html-emails/