由于在http://www.indyproject.org/Sockets/Demos/index.EN.aspx中给出的演示仅将接收到的流保存到文件中,我不知道如何有效地将该流发送为邮件。
有人能教我怎么做或者指向更完整的示例吗?
由于在http://www.indyproject.org/Sockets/Demos/index.EN.aspx中给出的演示仅将接收到的流保存到文件中,我不知道如何有效地将该流发送为邮件。
有人能教我怎么做或者指向更完整的示例吗?
下面是一个完整的示例,演示如何发送电子邮件:
VAR SMTP : TIdSMTP;
VAR MSG : TIdMSG;
.
.
MSG:=TIdMSG.Create(NIL);
TRY
WITH MSG.Recipients.Add DO BEGIN
Name:='<Name of recipient>';
Address:='<Email address of recipient>'
END;
MSG.BccList.Add.Address:='<Email address of Blind Copy recipient>';
MSG.From.Name:='<Name of sender>';
MSG.From.Address:='<Email address of sender>';
MSG.Body.Text:='<Message Body>';
MSG.Subject:='<Subject of message>';
SMTP:=TIdSMTP.Create(NIL);
TRY
SMTP.Host:='x.x.x.x'; // IP Address of SMTP server
SMTP.Port:=25; // Port address of SMTP service (usually 25)
SMTP.Connect;
TRY
SMTP.Send(MSG)
FINALLY
SMTP.Disconnect
END
FINALLY
SMTP.Free
END
FINALLY
MSG.Free
END;
.
.
我知道WITH语句不被推荐使用,但通常在像这样明确且没有歧义(或仅有微小的歧义)的情况下使用它。
一个SMTP服务器组件不能发送邮件 - 它只能接收邮件。您需要一个SMTP客户端组件(TidSMTP)来发送邮件。当邮件服务器发送邮件时,它会像一个SMTP客户端。