SendMailExchang := TMessageExchanger.Create(nil);
lMessage := TMessage.Create(nil);
lAccount := TMailAccount.Create;
MailSystem := TMailSystem.Create;
try
SendMailExchang.MessageKind := TMessageKind.mkSend;
lAccount.SMTPHost:='172.16.1.15';
lAccount.SMTPPort:=25;
lAccount.POPHost:='172.16.1.15';
lAccount.POPPort:=101;
lAccount.MailAddress:='172.16.1.15';
lAccount.UserID:='administrator';
lAccount.Password:='******;
lAccount.AccountID := '111@chinaboilers.com';
lAccount.Verify := True;
lAccount.VerifyAccount := '111@chinaboilers.com';
lAccount.VerifyPassword := '*****';
lMessage.From := q2.FieldByName('Fmail').AsString+'@chinaboilers.com'; //发件人
lMessage.SendTo := vc; //收件人 c
lMessage.Subject := q1.FieldByName('XMMC').AsString+'-'+q1.FieldByName('NRCC').AsString; //mail tatil
lMessage.Body.Text := '内容描述:'+q1.FieldByName('NRMS').AsString+#13+
'要求要点:'+q1.FieldByName('YQYD').AsString+#13+
'是否与收款/罚款联系:'+q1.FieldByName('SFYSK_FKLX').AsString+#13+
'基准时间:'+q1.FieldByName('JZSJ').AsString+#13+
'前/后:'+q1.FieldByName('Q_H').AsString+#13+
'XX天:'+q1.FieldByName('XXT').AsString+#13+
'实际需完成日期:'+q1.FieldByName('TSSJXWCRQ').AsString+#13+
'提醒开始关注时间点:'+q1.FieldByName('TXKSGZSJD').AsString+#13+
'警戒点:'+q1.FieldByName('JJD').AsString+#13+
'落实部门:'+q1.FieldByName('LSBM').AsString+#13+
'落实者:'+q1.FieldByName('LSZ').AsString+#13+
'信息相关抄送人员:'+q1.FieldByName('XXXGCSRY').AsString; //mail context
lMessage.ContentFormatType := TContentFormatType.ftText; // 设置正文内容格式
//lMessage.Date := business.System.SysUtils.DateToStr(business.System.SysUtils.now());
//根据邮件的发件人获取发送邮件的帐号,
//此帐号是从Business邮件系统中设置的帐号中获得的
//如果使用自定义的发送帐户,请重新设置lAccount对象的相关属性
//lAccount := MailSystem.FindAccountByAddress(lMessage.From);
if lAccount <> nil then
begin
lMailContent := TMemoryStream.Create; //用于存放邮件的正文
lMailContent.Clear;
lMessage.SaveToStream(lMailContent);
lMailContent.Position := 0; //移动流的指针
try
if lAccount.Verify then
begin
if lAccount.DifferPOP then
SendMailExchang.SMTPMessages.Add(lAccount.VerifyAccount,
lAccount.VerifyPassword, lAccount.SMTPHost,
lMessage.From, lMessage.SendTo, lMailContent, lAccount.SMTPPort)
else
SendMailExchang.SMTPMessages.Add(lAccount.UserID, lAccount.Password,
lAccount.SMTPHost, lMessage.From, lMessage.SendTo, lMailContent,
lAccount.SMTPPort);
end
else
SendMailExchang.SMTPMessages.Add(lAccount.SMTPHost, lMessage.From,
lMessage.SendTo, lMailContent, lAccount.SMTPPort);
finally
lMailContent.Free;
lAccount.Free;
end;
SendMailExchang.Active := True; //发送邮件
//dialogs.showmessage('邮件发送成功!');
end;
finally
lMessage.Free;
MailSystem.Free;
SendMailExchang.Free; // SendMailExchang对象一定要最后释放
end;
这是发送邮件的代码,如果填写抄送给多人 |