Redemption.dll和delphi如何发送电子邮件

时间:2016-06-21 09:30:53

标签: email delphi outlook-redemption

我在使用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;

2 个答案:

答案 0 :(得分:4)

对于缓存的配置文件,这是预期的 - 除非您使用的是在线Exchange配置文件,否则需要发送邮件的是Outlook。

您可以在Outlook对象模型中使用Namespace.SendAndReceiveSyncObject.Start

有关详细信息,请参阅http://www.dimastr.com/redemption/faq.htm#1

答案 1 :(得分:-2)

电子邮件正被添加到收件箱中。相反,它应该被添加到发件箱,然后Outlook将自动发送它。

替换

folder := session.GetDefaultFolder(olFolderInbox);

folder := session.GetDefaultFolder(olFolderOutbox);