안녕하세요...
메일 보내는 프로그램을 짜고 있는데요....
SMTP컴포넌트를 사용하거든요....
프로그램 세계를 보니까
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Psock, NMsmtp;
type
Tfrmmail = class(TForm)
btnconnect: TButton;
btnsend: TButton;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
edthost: TEdit;
edtto: TEdit;
edtcc: TEdit;
edtsubject: TEdit;
edtfrom: TEdit;
Memo1: TMemo;
SMTP1: TNMSMTP;
procedure btnsendClick(Sender: TObject);
procedure btnconnectClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmmail: Tfrmmail;
implementation
{$R *.DFM}
function noparam : variant;
begin
TVarData(Result).VType := varError;
TVarData(Result).VError := DISP_E_PARAMNOTFOUND;
end;
procedure Tfrmmail.btnsendClick(Sender: TObject);
var
add : string;
begin
add := edtto.Text;
if edtcc.text <> '' then
add := add + ', '+ edtcc.text;
with smtp1 do
begin
docinput.headers.clear;
docinput.headers.add('To',edtto.text);
docinput.headers.add('From',edtfrom.text);
docinput.headers.add('CC',edtcc.text);
docinput.headers.add('Subject',edtsubject.text);
docinput.headers.add('Content-Type','TEXT/PLAIN charset=US-ASCII');
end;
with smtp1 do
senddoc(noparam, docinput.headers, memo1.text, " , ");
end;
procedure Tfrmmail.btnconnectClick(Sender: TObject);
begin
smtp1.remotehost := edthost.text;
smtp1.Connect(noparam, noparam);
end;
end.
이렇게 하면 된다던데....
자꾸 위의 docinput에서 에러가 뜹니다.....왜 그럴까요?
한 수 가르쳐 주십시오.....
> 안녕하세요...
> 메일 보내는 프로그램을 짜고 있는데요....
> SMTP컴포넌트를 사용하거든요....
> 프로그램 세계를 보니까
> interface
>
> uses
> Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
> StdCtrls, ExtCtrls, Psock, NMsmtp;
>
> type
> Tfrmmail = class(TForm)
> btnconnect: TButton;
> btnsend: TButton;
> Panel1: TPanel;
> Panel2: TPanel;
> Panel3: TPanel;
> Panel4: TPanel;
> Panel5: TPanel;
> edthost: TEdit;
> edtto: TEdit;
> edtcc: TEdit;
> edtsubject: TEdit;
> edtfrom: TEdit;
> Memo1: TMemo;
> SMTP1: TNMSMTP;
> procedure btnsendClick(Sender: TObject);
> procedure btnconnectClick(Sender: TObject);
> private
> { Private declarations }
> public
> { Public declarations }
> end;
>
> var
> frmmail: Tfrmmail;
>
> implementation
>
> {$R *.DFM}
>
> function noparam : variant;
> begin
> TVarData(Result).VType := varError;
> TVarData(Result).VError := DISP_E_PARAMNOTFOUND;
> end;
>
>
> procedure Tfrmmail.btnsendClick(Sender: TObject);
>
> var
> add : string;
>
> begin
>
> add := edtto.Text;
> if edtcc.text <> '' then
> add := add + ', '+ edtcc.text;
> with smtp1 do
> begin
>
> docinput.headers.clear;
> docinput.headers.add('To',edtto.text);
> docinput.headers.add('From',edtfrom.text);
> docinput.headers.add('CC',edtcc.text);
> docinput.headers.add('Subject',edtsubject.text);
> docinput.headers.add('Content-Type','TEXT/PLAIN charset=US-ASCII');
> end;
>
>
> with smtp1 do
> senddoc(noparam, docinput.headers, memo1.text, " , ");
> end;
>
> procedure Tfrmmail.btnconnectClick(Sender: TObject);
> begin
> smtp1.remotehost := edthost.text;
> smtp1.Connect(noparam, noparam);
> end;
>
> end.
> 이렇게 하면 된다던데....
> 자꾸 위의 docinput에서 에러가 뜹니다.....왜 그럴까요?
> 한 수 가르쳐 주십시오.....
>
docinput에서 에러는...
아마 제 생각에는 OBJECT INSPECTOR의 edit명과 폼에 작성한 edit명이
틀려서 그런게 아닐까요.
저도 예전에 이 샘플로 해보았는데..
위와 같은 오류가 있어서 잘 안되었거든요.
아니면 문법상 오류가 생긴것이 아닐까요?
그리고 위의 코딩상에 senddoc(noparam, docinput.headers, memo1.text, " , ");
에서 "."는 문법 에러가 나더군요.. 그래서 저는 '',''로 바꾸었더니 해결되었습니다.
잘해보셔요..