我有一个处理用户注册的类。有两个主要步骤:将用户插入mysql表,然后在插入成功时发送确认电子邮件。
有什么方法可以......我不知道......如果处理发送电子邮件的函数失败,那么第一步是否缓存以便不插入数据?
我可以检查服务器上是否启用了sendmail,如果没有,则甚至不执行查询。我认为这大部分时间都可以工作,但我也想抓住启用sendmail的时间,但发送电子邮件时出现了一些错误。
我将所有数据插入到临时表中,如果邮件发送成功,则将该行复制到永久表中。这个问题是我调用一个存储过程来插入数据,并且邮件内容正在应用程序代码中发生,所以一旦插入完成,临时表就会自动解除(这是正确的吗?)。
答案 0 :(得分:0)
我个人不会从应用程序发送电子邮件。相反,我将电子邮件信息存储在一个表中,使用cron作业从表中发送电子邮件,这样我就可以采取适当的操作。
答案 1 :(得分:0)
使用Dan的解决方案“LAST_INSERT_ID()”或者如果您首先插入所有用户并稍后发送电子邮件,只需将ID缓存到相应的用户电子邮件中,以便通过其引用删除用户:
array('sample@domain.com' => 123);
干杯