一起使用 ImageMagick 和 PHP IMAP 会导致问题
Using ImageMagick and PHP IMAP together causes problems
我正在开发一个 PHP 脚本来替换 C# Windows 服务,该服务读取客户端电子邮件并将附件以任何格式转换为标准格式。在我开始使用 ImageMagick 转换大型文档之前,IMAP 工作正常,然后我开始在任何尝试执行的 IMAP 函数中遇到错误:"Trying to get property of non-object"。同样从那时起,将电子邮件保存到 .eml 文件的功能开始保存本质上是空文件的内容,并且将每封电子邮件从 'unseen' 设置为 'seen' 的代码停止工作。
如果我跳过处理带有最大附件的电子邮件,一切正常。
如果我 运行 注释掉 ImageMagick 命令的代码 运行 没问题,包括保存 .eml 文件并将 'unseen' 设置为 'seen',所以它是与 ImageMagick 有关,但如果我能弄清楚是什么,我会被诅咒的。
每次图像完成转换时,我都添加了 $imagick->clear()。
我在创建 $imagick 对象后立即添加了这个:
$imagick->setResourceLimit(imagick::RESOURCETYPE_MEMORY, 256);
$imagick->setResourceLimit(imagick::RESOURCETYPE_MAP, 256);
$imagick->setResourceLimit(imagick::RESOURCETYPE_AREA, 1512);
$imagick->setResourceLimit(imagick::RESOURCETYPE_FILE, 768);
$imagick->setResourceLimit(imagick::RESOURCETYPE_DISK, -1);
有什么想法吗?
谢谢。
您的 IMAP 连接可能超时。某些服务器会在非常短的不活动时间后关闭连接,雅虎低至 2 分钟。
我正在开发一个 PHP 脚本来替换 C# Windows 服务,该服务读取客户端电子邮件并将附件以任何格式转换为标准格式。在我开始使用 ImageMagick 转换大型文档之前,IMAP 工作正常,然后我开始在任何尝试执行的 IMAP 函数中遇到错误:"Trying to get property of non-object"。同样从那时起,将电子邮件保存到 .eml 文件的功能开始保存本质上是空文件的内容,并且将每封电子邮件从 'unseen' 设置为 'seen' 的代码停止工作。
如果我跳过处理带有最大附件的电子邮件,一切正常。
如果我 运行 注释掉 ImageMagick 命令的代码 运行 没问题,包括保存 .eml 文件并将 'unseen' 设置为 'seen',所以它是与 ImageMagick 有关,但如果我能弄清楚是什么,我会被诅咒的。
每次图像完成转换时,我都添加了 $imagick->clear()。
我在创建 $imagick 对象后立即添加了这个: $imagick->setResourceLimit(imagick::RESOURCETYPE_MEMORY, 256); $imagick->setResourceLimit(imagick::RESOURCETYPE_MAP, 256); $imagick->setResourceLimit(imagick::RESOURCETYPE_AREA, 1512); $imagick->setResourceLimit(imagick::RESOURCETYPE_FILE, 768); $imagick->setResourceLimit(imagick::RESOURCETYPE_DISK, -1);
有什么想法吗?
谢谢。
您的 IMAP 连接可能超时。某些服务器会在非常短的不活动时间后关闭连接,雅虎低至 2 分钟。