原本是通过BODY.text直接输入内容,但是效果显示太单调,后来百度查到HTML方式,可以丰富文本
例子界面:
收件箱效果:
procedure TForm1.Button1Click(Sender: TObject);
var
html: TIdText; //需要uses idText
begin
Application.ProcessMessages;
IdSMTP1.Host := '10.2.5.3';//邮箱服务器地址
IdSMTP1.Port := 465;//端口
IdSMTP1.username := '-group.com'; // 发送者邮箱
IdSMTP1.password := '6672wdsr..'; // 密码用自己的
IdSMTP1.AuthType := satDefault; //设置登陆类型
try
IdSMTP1.Connect; // 连接
except
ShowMessage('邮箱服务器连接失败')
end;
if IdSMTP1.Authenticate then //验证
begin
IdMessage1.ClearBody; //清空正文
html := TIdText.Create(IdMessage1.MessageParts); //创建HTML
html.ContentType := 'text/html;charset=gb2312';
html.Body.Text := Memo1.Text; //HTML内容来源于MEMO
IdMessage1.Subject:='这是一条测试标题';
// IdMessage1.From.address := '-group.com'; // 发件人地址,缺少了这个,对方看不到谁发的,也就是发件人对方看到是空的
IdMessage1.Recipients.EMailAddresses := '-group.com'; //发送邮箱
TIdAttachmentFile.Create(idmessage1.MessageParts, 'C:\delphi代码\delphi延迟.txt'); //添加附件
IdMessage1.Priority := mpLow; // 优先级
IdSMTP1.Send(IdMessage1); //发送邮件
IdMessage1.Clear; //清空内容
IdSMTP1.Disconnect; //关闭连接
end;
end;
这是我东拼西凑过来的代码,完美实现。
如果需要富文本编辑框,那就还得准备HTML编辑器控件。
我这个HMTL代码是直接查看邮箱的源码信息复制粘贴上来的。