我从未使用过Delphi(我的女朋友有一些经验),但我想制作一个小工具,我认为它应该在Delphi上制作。经过数小时的搜索和测试后,我们发现只有本指南(http://delphi.about.com/od/indy/a/email-send-indy.htm)不起作用,按下发送电子邮件按钮时会出现巨大错误。
我正在尝试制作一个随我的游戏发布的工具,并允许用户在出现问题或反馈时向我发送电子邮件(发送到我的Gmail)。他将输入他的电子邮件,附上截图并填写评论框,不需要其他内容。谢谢,我会非常感谢任何帮助。
答案 0 :(得分:8)
这是发送电子邮件的简单例程。我想你可以修改它以满足你的需求:
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
,而不是用户的电子邮件地址。您可以将他们的电子邮件地址包含在崩溃报告的正文中。
答案 1 :(得分:4)
IMO,电子邮件无法在100%的时间内发挥作用。你很幸运能得到80%。如果您使用SMTP,防火墙和ISP必须允许它。如果您使用现有的电子邮件客户端,则需要依赖正确的配置。一个典型的情况是他们使用Gmail或Yahoo,然后你尝试通过“已经在系统上的imap电子邮件”发送一些内容,并且用户面对的是他们甚至不知道他们有的旧版Outlook Express或Windows Mail ,但它已经“注册”了Windows作为默认的电子邮件处理程序。这变得丑陋。 我建议通过HTTP发送到您网页上的应用程序。一个PHP脚本,用于将信息和图像记录到MySQL数据库中。实际上,我建议使用像Mantis或FogBugz这样的bug跟踪数据库(来自我们的赞助人!)。我会检查它们,然后如果你喜欢它们提供的东西,通过HTTP帖子(或电子邮件等)提交报告是相当简单的。