起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: zhjkill

【结贴】用代码给外网发邮件**

[复制链接]
发表于 2008-7-29 09:33:03 | 显示全部楼层
不会啊,我这里就不需要配置帐号也可以用阿。
AccountID,VerifyAccount,还有pop3你制定了吗?看你上面的代码好像都没有设阿。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-29 09:47:08 | 显示全部楼层
对lAccount这个不熟悉
AccountID,VerifyAccount是表示什么?
pop3不用设置吧,这个收取邮件用的,只要发邮件
回复 支持 反对

使用道具 举报

发表于 2008-7-29 09:59:58 | 显示全部楼层
AccountID是邮件名称
VerifyAccount是认证帐号。
你配置帐号信息的时候有这几项的。(上面说的具体名词可能不一定一模一样,但大概就是那个意思)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-29 10:12:29 | 显示全部楼层
procedure TCCBGSQDForm.Button1Click(Sender: TObject);
var
  SendMailExchang: TMessageExchanger;
  lMessage: TMessage;
  lAccount: TMailAccount;
  MailSystem: TMailSystem;
  lMailContent: TMemoryStream;
begin
  SendMailExchang := TMessageExchanger.Create(nil);
  lMessage := TMessage.Create(nil);
  lAccount := TMailAccount.Create;
  MailSystem := TMailSystem.Create;
    try
    SendMailExchang.MessageKind := TMessageKind.mkSend;
    lAccount.SMTPHost:='smtp.163.com';
    lAccount.SMTPPort:=25;
    lAccount.POPHost:='pop.163.com';
    lAccount.POPPort:=101;
    lAccount.MailAddress:='zhjkill@163.com';
    lAccount.UserID:='zhjkill';
    lAccount.Password:='******';
    lAccount.AccountID := 'zhjkill@163.com';
    lAccount.Verify := True;
    lAccount.VerifyAccount := 'zhjkill@163.com';
    lAccount.VerifyPassword := '******';
    lMessage.From := 'zhjkill@163.com';  //发件人
    lMessage.SendTo := 'zhjkill@163.com';  //收件人
    lMessage.Subject := '告警提示!';             //mail tatil
    lMessage.Body.Text := '邮件测试!多多打扰请谅解!';    //mail context
    lMessage.ContentFormatType := TContentFormatType.ftText;  // 设置正文内容格式
    lMessage.Date := business.System.SysUtils.DateToStr(business.System.SysUtils.now());
    //根据邮件的发件人获取发送邮件的帐号,
    //此帐号是从Business邮件系统中设置的帐号中获得的
    //如果使用自定义的发送帐户,请重新设置lAccount对象的相关属性
    lAccount := MailSystem.FindAccountByAddress(lMessage.From);
    if lAccount <> nil then
    begin
      lMailContent := TMemoryStream.Create;  //用于存放邮件的正文
      lMailContent.Clear;
      lMessage.SaveToStream(lMailContent);
      lMailContent.Position := 0;  //移动流的指针
      try
        if lAccount.Verify then
        begin
          if lAccount.DifferPOP then
            SendMailExchang.SMTPMessages.Add(lAccount.VerifyAccount,
              lAccount.VerifyPassword, lAccount.SMTPHost,
              lMessage.From, lMessage.SendTo, lMailContent, lAccount.SMTPPort)
          else
            SendMailExchang.SMTPMessages.Add(lAccount.UserID, lAccount.Password,
              lAccount.SMTPHost, lMessage.From, lMessage.SendTo, lMailContent,
              lAccount.SMTPPort);
        end
        else
          SendMailExchang.SMTPMessages.Add(lAccount.SMTPHost, lMessage.From,
            lMessage.SendTo, lMailContent, lAccount.SMTPPort);
      finally
        lMailContent.Free;
        lAccount.Free;
      end;
        SendMailExchang.Active := True;  //发送邮件
        dialogs.showmessage('邮件发送成功!');
    end;
  finally
    lMessage.Free;
    MailSystem.Free;
    SendMailExchang.Free;  //  SendMailExchang对象一定要最后释放
  end;
end;
改成这样还是不行
运行到if lAccount <> nil then 时lAccount 就成空对象
回复 支持 反对

使用道具 举报

发表于 2008-7-29 10:19:02 | 显示全部楼层
lAccount := MailSystem.FindAccountByAddress(lMessage.From);
你加这句干嘛呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-29 10:22:56 | 显示全部楼层
lMessage.From := 'zhjkill@163.com';  //发件人
    lMessage.SendTo := 'zhjkill@163.com';  //收件人
    lMessage.Subject := '告警提示!';             //mail tatil
    lMessage.Body.Text := '邮件测试!多多打扰请谅解!';    //mail context
    lMessage.ContentFormatType := TContentFormatType.ftText;  // 设置正文内容格式
这些信息不是要获取吗?
    lMessage.Date := business.System.SysUtils.DateToStr(business.System.SysUtils.now());
回复 支持 反对

使用道具 举报

发表于 2008-7-29 10:25:00 | 显示全部楼层
你把它去掉再看看吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-29 10:29:51 | 显示全部楼层
去掉,发送成功,还是收不到邮件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-29 10:31:25 | 显示全部楼层
lAccount.VerifyAccount := 'zhjkill@163.com';
lAccount.AccountID := 'zhjkill@163.com';
这个两个对不对?
回复 支持 反对

使用道具 举报

发表于 2008-7-29 10:41:50 | 显示全部楼层
对的阿。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-20 02:51 , Processed in 0.043832 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表