Delphi - Indy idMessage和idSMTP实现邮件的发送

idMessage / idSMTP

首先对idMessage类的各种属性进行赋值(邮件的基本信息,如收件人、邮件主题、邮件正文等),其次通过idSMTP连接邮箱服务器,最后通过idSMTP的Send方法将idMessage发送出去。

界面布局如下:

代码如下:

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.

总结

以上所述是小编给大家介绍的Delphi - Indy idMessage和idSMTP实现邮件的发送,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Delphi实现获取句柄并发送消息的方法

    本文以实例形式详细说明了Delphi获取句柄并发送消息的方法,具体用法说明如下: 查找另外一个窗口的句柄: handle := FindWindow(nil,PChar('窗口的标题'));//查到窗体句柄 查找子窗体: childHandle := FindWindowEx(handle,0,'子窗体类','子窗体标题'); 另外有个枚举子窗体的API, EnumChildWindows(主创体句柄,@回调函数,用户参数); 用这个函数需要自己写一个回调的函数,比如: function Enu

  • Delphi7中群发Email邮件的方法

    本文实例讲述了Delphi7中群发Email邮件的方法.分享给大家供大家参考.具体分析如下: 这段时间需要对所有参加考试的考生将考生信息及考试信息通过电子邮件群发,经过多次调试,算是成功了,发来给大家参考一下: 总的思路是: 1.安装局域网版的邮件服务器,并通过设置DNS使得给服务器能给网外用户发送电邮,这方面的软件比较多,例如WinWebMail就不错,可以从官网下载:   2.需要使用到的控件:Indy10.0.15,可以通过百度搜索下载:   3.设置需要发送的电子邮箱服务器及账号信息 复

  • delphi发送消息控制滚动条使用示例

    1.Perform 函数 复制代码 代码如下: DBGrid1.Perform(WM_VSCROLL,SB_PAGEDOWN,0); //控制滚动条,向后翻页 DBGrid1.Perform(WM_VSCROLL,SB_PAGEUP,0); //控制滚动条,向前翻页 2.SendMessage 函数 复制代码 代码如下: SendMessage(DBGrid1.Handle,WM_VSCROLL,SB_PAGEDOWN,0); SendMessage(DBGrid1.Handle,WM_VSCR

  • Delphi - Indy idMessage和idSMTP实现邮件的发送

    idMessage / idSMTP 首先对idMessage类的各种属性进行赋值(邮件的基本信息,如收件人.邮件主题.邮件正文等),其次通过idSMTP连接邮箱服务器,最后通过idSMTP的Send方法将idMessage发送出去. 界面布局如下: 代码如下: unit uMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrl

  • java编程实现邮件定时发送的方法

    本文实例讲述了java编程实现邮件定时发送的方法.分享给大家供大家参考,具体如下: 最近做项目时客户提出了一个需求:系统定时发送E-mail到其客户,达到通知的效果.先将实例分享给大家,如果确实有一些帮助的话,请大家来点掌声! 首先介绍java定时器(java.util.Timer)有定时执行计划任务的功能,通过设定定时器的间隔时间,会自动在此间隔时间后执行预先安排好的任务(java.util. TimerTask) 如: 每隔一个小时执行任务 timer.schedule(TimerTask,

  • 使用spring实现邮件的发送实例(含测试,源码,注释)

    此篇主要讲的是使用spring配置实现邮件发送,与之前的底层实现简便了不少,只需要几个配置就可以了,那么请往下看: 先写个接口 /** * @Title: IMailserdService.java * @Package org.service * @Description: TODO该方法的主要作用: * @author A18ccms A18ccms_gmail_com * @date 2017-5-30 上午10:36:34 * @version V1.0 */ package org.s

  • Python接收Gmail新邮件并发送到gtalk的方法

    本文实例讲述了Python接收Gmail新邮件并发送到gtalk的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import imaplib import string, random import StringIO, rfc822 import email from google.appengine.api import xmpp SERVER1 = "imap.gmail.com" USE

  • PHP配置把错误日志以邮件方式发送方法(Windows系统)

    当系统发生了很严重的问题,需要立刻发送给管理员.可以通过 error_log() 将错误以邮件形式发送到邮箱. 在 php.ini 中设置: 复制代码 代码如下: sendmail_from = 472323087@qq.com 然后设置: 复制代码 代码如下: sendmail_path = "G:\sendmail\sendmail.exe -t" 其中:G:\sendmail\sendmail.exe 是邮件客户端的地址. 代码: 复制代码 代码如下: <?php //关闭

  • 用用outlook Express 由于服务器拒绝接受发件人的电子邮件地址,这封邮件无法发送

    由于服务器拒绝接受发件人的电子邮件地址,这封邮件无法发送.发件人的电子邮件地址是"hcs___168@163.com". 主题 '尝学版', 帐户: 'pop3.163.com', 服务器: 'smtp.163.com', 协议: SMTP, 服务器响应: '553 authentication is required,smtp3,wKjRDUYA+QLQRltED6_JAg==.51785S2', 端口: 25, 安全(SSL): 否, 服务器错误: 553, 错误号: 0x800C

  • C++调用libcurl开源库实现邮件的发送功能流程详解

    目录 1.为啥要选择libcurl库去实现邮件的发送 2.调用libcurl库的API接口实现邮件发送 3.构造待发送的邮件内容 4.开通163发送邮件账号的SMTP服务 5.排查接收的邮件内容为空的问题 libcurl中封装了支持这些协议的网络通信模块,支持跨平台,支持Windows,Unix,Linux等多个操作系统.libcurl提供了一套统一样式的API接口,我们不用关注各种协议下网络通信的实现细节,只需要调用这些API就能轻松地实现基于这些协议的数据通信.本文将简单地讲述一下使用lib

  • python 七种邮件内容发送方法实例

    一.文件形式的邮件 复制代码 代码如下: #!/usr/bin/env python3#coding: utf-8import smtplibfrom email.mime.text import MIMETextfrom email.header import Header sender = '***'receiver = '***'subject = 'python email test'smtpserver = 'smtp.163.com'username = '***'password

  • PHP实现SMTP邮件的发送实例

    当你还在纠结php内置的mail()函数不能发送邮件时,那么你现在很幸运,此时的这篇文章可以帮助到你! php利用smtp类来发邮件真是屡试不爽,我用过很久了,基本上没出过问题.本博客后台,当博主回复留言时候,会自动给网友发一封有新回复提示的邮件也是用的本文这个方法实现的. smtp类发送邮件的方法其实很简单,也很稳定,类是别人已经写好的了,你只需要调用就行了.几行简单的配置就能发邮件,是不是很期待的试一试呢! <?php /** * @param $address mixed 收件人 多个收件

  • 易语言监控smtp和反编译获取程序内邮件密码发送信息达到反钓鱼的目的

    监控smtp和反编译获取程序内邮件密码.发送信息达到反钓鱼的目的 反邮箱钓鱼程序源码 .版本 2 .支持库 EThread .支持库 eAPI .支持库 xplib .支持库 edroptarget .支持库 pop3 .支持库 iext .程序集 窗口程序集1 .程序集变量 服务器, 文本型 .程序集变量 帐号, 文本型 .程序集变量 密码, 文本型 .子程序 _拖放对象1_得到文件 .参数 接收到的文件路径, 文本型 .局部变量 钓鱼软件, 字节集 .局部变量 邮箱位置, 整数型 .局部变量

随机推荐