通过Delphi发送电子邮件

Yor*_*kov 1 delphi email gmail sender

我从未使用Delphi(我的女朋友有一些经验),但我想制作一个小工具,我认为它应该在Delphi上制作.经过几个小时的搜索和测试,我们发现只有这个指南(http://delphi.about.com/od/indy/a/email-send-indy.htm)不起作用,它在按下时会出现很大的错误发送电子邮件按钮

我正在尝试制作一个随我的游戏一起发布的工具,并允许用户在出现问题或反馈时向我发送电子邮件(发送到我的Gmail).他将输入他的电子邮件,附上截图并填写评论框,不需要其他内容.谢谢,我会非常感谢任何帮助.

iMa*_*ari 11

这是发送电子邮件的简单例程.我想你可以修改它以满足你的需求:

procedure SendImage(const Comment, AImage: String);
var
  SMTP: TIdSMTP;
  Msg: TIdMessage;
begin
  if not FileExists(AImage) then
    Exit;
  Msg := TIdMessage.Create(nil);
  try
    Msg.From.Address := 'xxxx@gmail.com';
    Msg.Recipients.EMailAddresses := 'xxxx@gmail.com';
    Msg.Body.Text := Comment;
    TIdAttachmentFile.Create(Msg.MessageParts, AImage);
    Msg.Subject := AImage;
    SMTP := TIdSMTP.Create(nil);
    try
      SMTP.Host := 'smtp.gmail.com';
      SMTP.Port := 25;
      SMTP.AuthType := satDefault;
      SMTP.Username := 'xxxx@gmail.com';
      SMTP.Password := '@#$%';
      SMTP.Connect;
      SMTP.Send(Msg);
    finally
      SMTP.Free;
    end;
  finally
    Msg.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

PS:请注意,您必须更换xxxx@gmail.com自己的电子邮件地址,而不是用户的电子邮件地址.您可以将他们的电子邮件地址包含在崩溃报告的正文中.

  • `TIdSMTP`适用于Gmail.在调用`Connect()`之前,您只需将支持SSL的IOHandler(例如`TIdSSLIOHandlerSocketOpenSSL`)附加到`TIdSMTP.IOHandler`属性.有很多在线文章解释了如何将Indy与Gmail结合使用. (7认同)

Chr*_*ton 5

IMO,电子邮件不会在 100% 的时间内起作用。你会很幸运得到 80%。如果您使用 SMTP,防火墙和 ISP 必须允许它。如果您使用他们现有的电子邮件客户端,则依赖于正确的配置。一个典型的情况是,他们使用 Gmail 或 Yahoo,然后您尝试通过“系统上已有的 imap 电子邮件”发送某些内容,而用户会遇到他们甚至不知道自己拥有的 Outlook Express 或 Windows Mail 的旧副本,但它已在 Windows 中“注册”为默认电子邮件处理程序。这变得丑陋。我建议通过 HTTP 发送到您网页上的应用程序。将信息和图像记录到 MySQL 数据库中的 PHP 脚本。实际上,我建议使用像 Mantis 或 FogBugz 这样的错误跟踪数据库(来自我们的赞助人!)。我会检查一下,然后如果你喜欢他们提供的东西,它'