delphi的smtp发邮件怎么实现

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:55:18
delphi7.0邮箱的发邮件功能总是实现不了,老师说要注意,很多免费邮件服务器不支持SMTP方式,一定要登录到他们的网站去发送邮件(为了广告)。
还要注意,有些邮件服务器在收到你发的邮件时可能作为垃圾邮件而抛弃或拒绝收。
我想到的方法是将服务器用自己的ip来代替
但自己写的软件和foxmail又不同,SMTP.Host写本地用户localhost不行
这是我发送的代码,帮我看看好吗
procedure TfrmMessageEditor.bbtnOkClick(Sender: TObject);
begin
with IdMsgSend do
begin
Body.Assign(Memo1.Lines);
From.Text := UserEmail;
ReplyTo.EMailAddresses := UserEmail;
Recipients.EMailAddresses := edtTo.Text; { To: header }
Subject := edtSubject.Text; { Subject: header }
Priority := TIdMessagePriority(cboPriority.ItemIndex); { Message Priority }
CCList.EMailAddresses := edtCC.Text; {CC}
BccList.EMailAddresses := edtBCC.Text; {BBC}
if chkReturnReciept.Checked then
begin {We set the recipient to the From E-Mail address }
ReceiptRecipient.Text := From.Text;
end

发送主要用两个控件:TIdMessage,TIdSMTP;
定义:
MailMessage: TIdMessage;
Mail: TIdSMTP;

实现举例:
procedure TForm1.Button1Click(Sender: TObject);
begin
if Mail.Connected then Mail.Disconnect;
Mail.Username := ''; //发件人用户名
Mail.Password := ''; // 发件人密码
Mail.Host := ''; //SMTP地址 这个地址要设置正确
Mail.Port := 25; //端口
Mail.AuthenticationType := atLogin;
MailMessage.Subject := 'test标题'; //标题
MailMessage.Body.Text := 'test内容'; //内容
MailMessage.From.Name := ''; //发件人姓名
MailMessage.From.Address := ''; //发件人地址
MailMessage.ReplyTo.EMailAddresses := ''; //发件人地址
MailMessage.Priority := TIdMessagePriority(1); //身份验证类型
TIdAttachment.Create(MailMessage.MessageParts, 'C:\Documents and Settings\Administrator\桌面\mail.txt'); //附件地址
MailMessage.Recipients.EMailAddresses := ''; // 收件人地址
MailMe