在ajax通话期间发送电子邮件需要花费大量时间。 是否可以在后台发送电子邮件并立即向用户返回HTTP响应。
答案 0 :(得分:0)
这可能更像是一个服务器问题。这取决于你如何配置PHP。
使用本地SMTP服务器可能会很不习惯,该服务器会将电子邮件假脱机,直到它到达目的地。如果您在多个服务器上使用相同的代码,Swiftmailer可能会帮助您从脚本而不是php.ini中配置此代码
答案 1 :(得分:0)
如果你正在使用AJAX,它已经在后台工作了。 AJAX是异步的,因此它会发送数据并继续执行其他操作。然后,当服务器报告请求状态更改时,您的AJAX可以做出相应的反应。
如果您尝试向用户确认电子邮件是否已发送,您可以在AJAX通话后立即执行此操作。这样,代码就会将请求发送到服务器,然后在之后立即显示确认。
如果您要确认电子邮件已发送,您必须等到它已被发送。在实际存在响应之前,您无法显示服务器响应。除非你做错了(我们无法在没有看到你的代码的情况下确定),AJAX应该在它到达时立即处理响应。因此,加速此过程的唯一方法是实现更高效/更快的邮件系统。
答案 2 :(得分:0)
考虑使用:
即使这个问题也可以帮助您:PHP fork process - getting child output in parent
所以你的电子邮件功能可以驻留在某些php文件中。这个php文件应该使用fork
或exec
执行。