在服务器上,我有一个C++程序,它需要一些输入并将一些输出写入文件。文件生成后,我想发送一封电子邮件给与该文件相应链接的人。C++调用python脚本来处理电子邮件
我宁愿避免SMTP从C++本身打交道,所以我想到了有C++使用系统调用来执行一个Python脚本,这反过来处理收发邮件的过程。
在C++:
system("python emailer.py [email protected] filetodownload.txt");
在Python:
import sys
email = sys.argv[1]
file = sys.argv[2]
// handle SMTP emailing...
我有一个关于这个简单的方法问题。 C++程序是多线程的,因此可能有多个线程希望调用python脚本来发送电子邮件。这是一个问题吗?一个(又是简单的)解决方案是否在C++程序中有一个互斥变量,它只允许一个线程一次调用python脚本?另外,如果有更好的方法去完成这个任务,请让我知道。
你可以将电子邮件推送到数据库,并让python脚本轮询它并从那里发送任何电子邮件。 – sean
其实电子邮件已经在数据库中了(我有一个从c + +的接口,所以只是想通过它传递它)。但是如果我理解你的观点,你的意思是说这个剧本就是说“一份工作已经准备好发送电子邮件了”。脚本然后查询以找到需要发送哪些作业。是对的吗? 编辑:也就是说,脚本可能会发现,如果两个作业同时完成,可能需要发送多个电子邮件。 – Aaron
或者只是让脚本不断运行,当它耗尽工作时,等待某些东西(无论是来自DB的东西,还是简单的POSIX信号或信号量或Windows EVENT或来自C++代码的任何东西),它告诉它“开始寻找 – abarnert