我在使用Redemption.dll的Delphi 10 Seattle中有以下代码。但是,在我按“发送/接收”之前,电子邮件一直停留在我的收件箱中。如何让它自动发送电子邮件?
procedure TForm1.sendMail(sendername, senderemail, subject, reciever,
message: WideString; Html_or_text: Boolean);
const
olMailItem = 0;
var
olApp, OlNameSpace, OlItem, rdSafeItem, rdUtils: variant;
OutlookApplication1 : OleVariant;
NameSpace : OleVariant;
AddressLists : OleVariant;
AddressList : OleVariant;
AddressEntries : OleVariant;
folder:RDOFolder;
m : RDOMail;
mailitem: SafeMailItem;
begin
folder := session.GetDefaultFolder(olFolderInbox);
m := folder.Items.Add(olMailItem);
m.To_ := reciever;
m.Subject := subject;
//rdomail.SentOnBehalfOfEmailAddress = ;
m.SenderName := sendername;
m.Body := message;
m.SenderEmailAddress := senderemail;
//m.Save();
m.Send;
end;
答案 0 :(得分:4)
对于缓存的配置文件,这是预期的 - 除非您使用的是在线Exchange配置文件,否则需要发送邮件的是Outlook。
您可以在Outlook对象模型中使用Namespace.SendAndReceive
或SyncObject.Start
。
有关详细信息,请参阅http://www.dimastr.com/redemption/faq.htm#1。
答案 1 :(得分:-2)
电子邮件正被添加到收件箱中。相反,它应该被添加到发件箱,然后Outlook将自动发送它。
替换
folder := session.GetDefaultFolder(olFolderInbox);
带
folder := session.GetDefaultFolder(olFolderOutbox);