2014-02-06 66 views
0

我正在研究一个应用程序,以及其他应用程序允许用户发送电子邮件。它通过将所有内容写入SQL服务器来工作,因此您可以拥有多个应用程序实例。C++ - 通过网络发送“电子邮件附件”

当前发送的电子邮件与SQL服务器上的“发件箱”表一起使用,应用程序实例通过SQL语句直接写入数据。然而,我已经遇到了一个问题,即对电子邮件附件的要求已经出现。

我的想法是,如果我可以将附加文件发送到SQL服务器所在的目录(可能是TEMP目录?),然后将路径存储到该文件(或UUID,如果该文件是常量)在表中。问题是,我不知道从哪里开始发送文件,因为我对C++还是很陌生。

我遇到过的一个术语是使用套接字发送它,但我正努力从何处着手,并且不知道它是否确实是最佳选择。任何人都可以就这件事提供一些建议吗?

在此先感谢。

回答

1

如果我没有理解它的工作方式(应用程序保存电子邮件到SQL然后另一个应用程序需要出来,并把它们发送),你有两个选择:

  1. 将附件保存为二进制在SQL和有邮件应用程序完成剩下的工作。
  2. 使用套接字将文件传输到SQL服务器并将路径保存到它,就像您所说的那样。

我想说,如果我正确理解它当前的工作方式,选项1将是最好的选择。至于选项2,可能有其他方式来传输文件,但套接字将是轻松跨平台的选项。

它不难开始使用套接字,在互联网上有很多例子。

+0

谢谢你的建议 - 你能推荐使用C这样做++和ADO的指导?我目前正在访问我的SQL数据库。我最大的问题是 - 你可以扩展“休息”吗?__ ^? – Raiden616

+0

@ user1014679我并不熟悉ADO或一般的邮件传输协议,但我的意思是应用程序1(用户应用程序)应该把用户想要附加的文件的路径,读为二进制文件,保存在SQL中以及文本和其他信息。然后应用程序2(服务器应用程序)应该从SQL读取数据并发送邮件。你需要查看邮件的附件部分应该是什么样的,或许[this](http://stackoverflow.com/q/17097806/1312672)和[this](http://en.wikipedia)。 org/wiki/MIME)可能会有所帮助。 –

+0

是的,我明白了:)我有一个邮件包装,可以将文件位置字符串作为参数添加附件,所以这是照顾。因此,如果我想要使用BLOB路由,我可以看到服务器应用程序必须:读取二进制文件;在本地临时位置重建原始文件;然后将该位置字符串添加到我的邮件包装器中。你知道这将如何做? – Raiden616

相关问题