Delphi - Indy idMessage和idSMTP實現(xiàn)郵件的發(fā)送
idMessage / idSMTP
首先對idMessage類的各種屬性進行賦值(郵件的基本信息,如收件人、郵件主題、郵件正文等),其次通過idSMTP連接郵箱服務(wù)器,最后通過idSMTP的Send方法將idMessage發(fā)送出去。
界面布局如下:
代碼如下:
unit uMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, RzPanel, RzShellDialogs, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP, RzButton, StdCtrls, RzEdit, RzBtnEdt, Mask, RzLabel; type TMainFrm = class(TForm) gbMsgSet: TRzGroupBox; gbSrvSet: TRzGroupBox; lbSubject: TRzLabel; lbRsd: TRzLabel; lbCc: TRzLabel; lbBCc: TRzLabel; lbAth: TRzLabel; lbBdy: TRzLabel; lbUserName: TRzLabel; lbHost: TRzLabel; lbPsd: TRzLabel; edtSub: TRzEdit; edtRsd: TRzEdit; edtCc: TRzEdit; edtBCc: TRzEdit; beAth: TRzButtonEdit; mmBdy: TRzMemo; btnSendMail: TRzBitBtn; edtUN: TRzEdit; edtHst: TRzEdit; edtPsd: TRzEdit; IdSMTP: TIdSMTP; IdMessage: TIdMessage; odMain: TRzOpenDialog; procedure beAthButtonClick(Sender: TObject); procedure btnSendMailClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainFrm: TMainFrm; implementation {$R *.dfm} procedure TMainFrm.beAthButtonClick(Sender: TObject); begin with odMain do begin Execute; if FileName <> '' then begin beAth.Text := FileName; end; end; end; procedure TMainFrm.btnSendMailClick(Sender: TObject); begin try if (Trim(edtCc.Text) = '') and (Trim(edtRsd.Text) = '') and (Trim(edtBCc.Text) = '') then begin MessageDlg('You should input Rsd, please check,thanks!', mtInformation, [mbOK], 0); edtRsd.SetFocus; Exit; end; with IdMessage do begin Clear; Subject := edtSub.Text; From.Text := edtUN.Text; Recipients.EMailAddresses := edtRsd.Text; CCList.EMailAddresses := edtCC.Text; BccList.EMailAddresses := edtBCc.Text; Priority := TIdMessagePriority(4); if Trim(beAth.Text) <> '' then begin TIdAttachment.Create(MessageParts, Trim(beAth.Text)); end; Body.Assign(mmBdy.Lines); end; except on E: Exception do begin MessageDlg('Msg Set Failed with Err information [' + E.Message + ']', mtWarning, [mbOK], 0); Exit; end; end; try if (Trim(edtUN.Text) = '') or (Trim(edtHst.Text) = '') or (Trim(edtPsd.Text) = '') then begin MessageDlg('You should input UN, please check,thanks!', mtInformation, [mbOK], 0); edtUN.SetFocus; Exit; end; with IdSMTP do begin if Connected then Disconnect; AuthenticationType := atLogin; Port := 25; UserName := edtUN.Text; Password := edtPsd.Text; Host := edtHst.Text; Connect; end; except on E: Exception do begin MessageDlg('Srv Set Failed with Err information [' + E.Message + ']', mtWarning, [mbOK], 0); Exit; end; end; try IdSMTP.Send(IdMessage); IdSMTP.Disconnect; MessageDlg('OK!', mtInformation, [mbOK], 0); except on E: Exception do begin MessageDlg('Send Failed with Err information [' + E.Message + ']', mtWarning, [mbOK], 0); Exit; end; end; end; end.
總結(jié)
以上所述是小編給大家介紹的Delphi - Indy idMessage和idSMTP實現(xiàn)郵件的發(fā)送,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
分布式醫(yī)療掛號系統(tǒng)整合Gateway網(wǎng)關(guān)解決跨域問題
這篇文章主要介紹了分布式醫(yī)療掛號系統(tǒng)整合Gateway網(wǎng)關(guān)解決跨域問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04在VS2019環(huán)境下使用Opencv調(diào)用GPU版本YOLOv4算法的詳細過程
隨著人工智能的不斷發(fā)展,機器學(xué)習(xí)這門技術(shù)也越來越重要,很多人都開啟了學(xué)習(xí)機器學(xué)習(xí),本文就介紹了windows下YOLO的環(huán)境搭建流程,感興趣的朋友跟隨小編一起看看吧2022-10-10通過Cursor使用chatgpt-4的ai輔助編程工具的方法
cursor是一款與openai合作的,使用gpt-4的一款編程工具,它可以讓你通過gpt-4進行輔助編程,以此提高效率,這篇文章主要介紹了Cursor一個使用chatgpt-4的ai輔助編程工具,需要的朋友可以參考下2023-05-05antd通過 filterDropdown 自定義按某天時間搜索功能
這篇文章主要介紹了antd通過 filterDropdown 自定義按某天時間搜索功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08