1

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

我正在尝试制作一个将与我的游戏一起分发的工具,并允许用户在出现问题或寻求反馈时向我发送电子邮件(到我的 Gmail)。他会输入他的电子邮件,附上截图并填写评论框,不需要其他东西。任何帮助将不胜感激,因为我被困住了,谢谢。

4

2 回答 2

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;

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

于 2013-06-10T09:38:38.460 回答
5

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

于 2013-06-10T14:16:44.193 回答