使用Delphi通过Web服务发送电子邮件(不泄漏凭据,无需用户交互)

时间:2015-07-08 12:41:54

标签: web-services delphi email

我有一个Delphi应用程序,需要通过电子邮件将生成的PDF文件发送给预定义的接收者列表的一个接收者。

  • 我不想乱用MAPI(并非所有客户都配置了这个)
  • 我不希望我的客户输入他们的邮件帐户详细信息(这意味着SMTP也无法选择)

因此,我考虑使用/设置PAAS Web服务来接收电子邮件文本,pdf文件以及实际执行工作的接收者的索引号。 我的问题是:在Delphi中是否存在开箱即用的解决方案,或者更好的方法是什么?

例如,我考虑使用Google App Engine,但似乎有no builtin support in Delphi。我更喜欢开箱即用的解决方案或经过测试的解决方案。服务器部分应该尽可能简单。

已编辑:有些说明:

  • 生成的exe安装在客户计算机上。我认为设置一个额外的邮件帐户是没有选择的,因为有人可以从exe中提取凭据并滥用邮件帐户。对于仅提供一个(登录/密码)访问的Web服务,情况似乎也是如此。
  • 使用OAuth2似乎别无选择,因为我确实希望在没有用户互动的情况下发送电子邮件。
  • 如果凭据需要保存在可执行文件中,并且现有答案建议如此,那么它们至少应该只提供非常有限的权利。

这可以解决吗?

3 个答案:

答案 0 :(得分:1)

Is this solveable at all?

没有

如果您要求用户(通过填写登录表单,如OAuth 2.0的情况)和程序(通过提供硬编码凭证)对Web服务进行身份验证,则与Web服务的通信可以不安全。

我建议重新考虑安全要求,并在问题中更加清晰。

答案 1 :(得分:0)

要发送邮件,您可以使用http://www.mailgun.com/http://aws.amazon.com/ses/等网络服务 它们为您提供了可用于发送电子邮件的http(s)-api。

答案 2 :(得分:0)

您可以使用Google App Engine进行Python,PHP,Go或Java编程:

  • 定义GAE应用程序侦听POST请求的HTTPS地址
  • 使用TIdHTTP发布PDF和电子邮件文本
  • 在GAE HTTPS服务器中接收PDF和电子邮件文本并将其转发给收件人
用于处理POST请求的Google App Engine的

Here is an excerpt of a Python example

class Guestbook(webapp2.RequestHandler):
    def post(self):
        self.response.write('<html><body>You wrote:<pre>')
        self.response.write(cgi.escape(self.request.get('content')))
        self.response.write('</pre></body></html>')

关于OAuth:GAE支持OAuth但不是必需