Delphi发送邮件的问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 05:24:18
哪位大虾帮忙看看,小生初学Delphi,写了个输入内容自动发送邮件的程序,可是一直有问题,可是不知道该怎么改~~~
===================================
type
TForm1 = class(TForm)
SMTP: TIdSMTP;
IdMsgSend: TIdMessage;
procedure SpeedButton3Click(Sender: TObject);
procedure SendEmail(Sender: TObject);//这个地方老出问题
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
var rd:string;
email:Textfile;
begin
with application do
begin
MessageBox('发送中,请稍候!','信息',MB_OK) ;
end;
rd:=Edit3.text;
AssignFile(email,'rf.txt');
Rewrite(email);
Writeln(email,'id',string(rd));
CloseFile(email);
SendEmail;// 这个地方老出问题
DeleteFile('rf.txt');
end;
procedure TForm1.SendEmail(Recipient,Address:string); //后面这个邮件程序好像有些问题
var
AdressItem:TIdEMailAddressItem;
AFile:string;
AMessage:TIdMessa

你的程序有很多问题.我单看了你调用SendMail这个过程就有问题.
你的SendMail过程在定义是没有定义参数:
procedure SendEmail(Sender: TObject);,
可是在下面却又需要传入参数:
procedure TForm1.SendEmail(Recipient,Address:string); .
我估计你这个SendMail的过程是直接Copy人家的.这样肯定会出问题的.
我根据你的意思写了一个差不多的程序.该程序能够读取到程序目录下一个'rf.txt'文件,并将该文件的内容作为将要发送的邮件内容.
需要在窗体中放置一个TIDMessage控件,一个TIdSMTP控件
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdMessage, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP;

type
TForm1 = class(TForm)
SMTP: TIdSMTP;
IdMsgSend: TIdMessage;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure sendmail(sbody:TStrings);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

im