代码之家  ›  专栏  ›  技术社区  ›  eKek0

如何使用Indy的SMTP服务器组件发送邮件?

  •  9
  • eKek0  · 技术社区  · 14 年前

    从演示开始 http://www.indyproject.org/Sockets/Demos/index.EN.aspx 只将接收到的流保存到文件中,我不知道如何有效地将该流作为邮件发送。

    有人能教我怎么做,或者给我举个更完整的例子吗?

    2 回复  |  直到 8 年前
        1
  •  9
  •   user160694    14 年前

    SMTP 服务器 组件无法发送邮件-它只能接收邮件。你需要一个SMTP 客户机 发送邮件的组件(tidmtp)。邮件服务器发送邮件时的行为类似于SMTP客户端。

        2
  •  13
  •   HeartWare    10 年前

    以下是有关如何发送电子邮件的完整示例:

    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;
    .
    .
    

    (我知道“与”是不受欢迎的,但我通常在这样的情况下使用它,在这种情况下,毫无疑问会发生什么,也没有(或只是极小的)含糊不清的可能性)