问题标签 [php-imap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5135 浏览

php - 一般错误:1366 Laravel/Mysql 中的字符串值不正确

我设计了 laravel 应用程序来使用 php imap 获取邮件。在内核中,我编写了获取所有邮箱的代码,下面是我从邮箱中获取邮件的代码

我有几个电子邮件ID和密码存储在表中,上面的代码将循环(比如外循环),它将获取每个邮件凭据,将连接到网络邮件并获取所有文件夹列表,即收件箱/已发送/垃圾邮件/垃圾/草稿/垃圾等

现在对于每个文件夹说收件箱,它会再次循环(比如内部循环)并获取所有不在表格中的邮件。

如果我不使用 try catch 并且发生任何错误,则整个过程都会停止,这就是我对内部和外部循环使用 try catch 的原因。

现在,如果我执行代码并且获取的邮件没有错误,那么它将被添加到适当的表中,如果有错误,那么它将被添加到错误日志表中。

对于某些邮件,我收到这样的错误消息

错误日志表结构 在此处输入图像描述

Mysql 版本是:5.7.18

这表明不支持我正在尝试添加到表中的数据。

但我看到排序规则很好,我也使用 longtext 来存储内容。

我已经在互联网上搜索了解决方案,但大多数解决方案在 7-8 年前得到了回答,我认为我的 sql 版本从那时起发生了很大变化,没有一个对我有用

我也不确定是否应该将 longtext 数据类型更改为 LongBlob。

如果我直接从 phpmyadmin 将相同的内容插入到表中,它会毫无错误地接受,那么为什么不来自 laravel。

0 投票
1 回答
4093 浏览

php - PHP imap_open():无法打开流到 gmail

当我尝试使用php-imap使用 IMAP 协议从服务器检索电子邮件时收到此消息。我从 gmail 帐户开始。但是当我尝试使用imap_open()连接时,我收到以下消息:

Warning: imap_open(): Couldn't open stream {imap.gmail.com/imap/ssl:993}INBOX in \path\to\file\imap.php on line 6

或者

Warning: imap_open(): Couldn't open stream {imap.gmail.com/imap/ssl/novalidate-cert:993}INBOX in \path\to\file\imap.php on line 6

取决于我是否使用 novalidate-cert

我发现了一些相关的问题,但不是解决方案

imap_open():无法打开流

出现 imap_open() 之类的错误:无法在服务器中打开流

连接到 Gmail IMAP PHP“无法打开流”

是否可以使用 imap php 扩展连接到电子邮件?如果是。我该如何解决这个消息?

如果,否。使用 PHP 接收电子邮件的哪种替代方案是可能的?

0 投票
0 回答
309 浏览

php - 带有 NTLM 哈希的 PHP imap_open

我有 MS 交换服务器的 NTLM 哈希。我可以使用用户名和密码使用凭据登录并使用php_imap()功能获取邮件信息,但我没有找到任何有关如何使用 NTLM 哈希登录邮箱的信息。这是可能的?PHP 文档仅提供如何禁用 NTLM 身份验证的信息。我发现的只是这个请求:https ://bugs.php.net/bug.php?id=34609

0 投票
1 回答
1076 浏览

php - 如何使用 PHPExcel 读取 XLSX 邮件附件文件?

我通过 IMAP 连接以从邮箱获取 XLSX 附件,因此我可以使用 PHPExcel 将这些电子表格转换为 PHP 数组数据,但是当我加载文件并将其转换为数组时,数组为空。

这是从符合条件的邮件中获取附件的函数:

然后这是将 XLSX 文件写入服务器并使用 PHPExcel 加载它们以将它们转换为数组数据的函数:

0 投票
0 回答
215 浏览

php - 无法使用 php-imap 库打开名称中带有波兰语字符的邮箱

我正在尝试创建与 imap 邮件帐户的简单集成,但我无法打开 Gmail 默认邮箱:Ważne

Gmail 返回邮箱如下:

php-imap我正在使用的包使我能够使用switchMailbox方法在邮箱之间切换。

这是该包中的代码示例:

当我尝试获取时会出现问题。有时我会收到此错误:

但有时错误说告诉发生了未知邮箱的原因......

这是我的代码示例:

我该如何解决?


更新

我试图直接传递邮箱名称 - 而不是从返回的数组中传递。示例代码更改如下:

但错误也发生了变化:

0 投票
1 回答
374 浏览

php - PHP imap_append 与密件抄送

我正在处理应用程序的邮箱,在发送电子邮件后,我想将其附加到“已发送”邮箱中,并能够检索收件人(收件人、抄送和密件抄送)。

这适用于以下代码...

...除了密件抄送。如果我在附加后检索电子邮件标题,似乎没有密件抄送,而应该有!(我可以检索到和抄送地址)。

我找不到原因。我犯错了吗?我是不是误会了什么?

编辑:好的,imap_mail_compose bcc 仍然不可见(那么为什么我们可以添加一个“bcc”参数,如果不使用它呢?)。那么,有没有办法附加密件抄送地址?

0 投票
0 回答
762 浏览

codeigniter - 带有codeigniter错误的Imap

在我在 xampp 上的 codeigniter 项目中,我有这个库Imap

当我调用此函数时<?php echo $this->imap->get_mailbox_size();?>,出现此错误

地址末尾的意外字符:<> (errflg=3)

这是vardump

int(471858)

我可以很好地接收电子邮件似乎与 foreach 循环有关$messages

问题:我不确定它的原因是什么,我该如何解决它?

0 投票
1 回答
1586 浏览

php - 带有嵌入图像的 IMAP PHP 未在本地主机上显示 Codeigniter

我使用目前正在开发项目 xampp 的 codeigniter 和 imap php。由于某种原因,他们嵌入的图像没有显示。

在我的 getBody() 函数中,我有这个回调

在此处输入图像描述

在此处输入图像描述

我收到错误

在此处输入图像描述

问题:如何确保它为文本/html 正文等获取正确的图像。

0 投票
0 回答
493 浏览

php - 为什么 PHP 中的 IMAP 函数如此缓慢?

为什么 PHP 中的 IMAP 函数如此缓慢?有没有推荐的解决方法?我在私人服务器上运行了一小部分 PHP,我设置了该服务器来轮询几个不同的 Gmail 收件箱并为我汇总新邮件。它总是很慢——检查四个邮箱可能需要几秒钟才能完成。最近由于我无法解释的原因,它几乎完全停止了工作。尽管凭据仍然有效,但服务器只是在第一次请求时超时。

在寻找这个问题的解决方案时,我遇到了这个“错误报告”,它很快就被推到了桌子底下。但似乎我不是唯一一个注意到 PHP 中的 IMAP 库速度几乎无法使用的人。

有没有其他人遇到过这个问题并想出任何技术来在合理的时间内访问 IMAP 邮箱?(几秒钟是相当不合理的!)

这就是我正在做的事情,基本上:

0 投票
1 回答
140 浏览

php - 从电子邮件中删除内容

我编写了一个脚本来从我的 IMAP 服务器中检索电子邮件。一切正常。

我想保留一些 HTML 标签,因此编写了额外的代码来去除我允许的列表中不包含的标签 - 再次,一切正常。

我的问题是收到的一些电子邮件包含我也想删除的其他内容。例如,最近收到的一封电子邮件包含...

v:* {behavior:url(#default#VML);} o:* {behavior:url(#default#VML);} w:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);}

在电子邮件内容的顶部。

如何删除此类内容以确保仅捕获实际的电子邮件内容?

我宁愿不使用纯文本内容(除非这是电子邮件中的唯一内容),因为电子邮件可能包含链接或强调我需要维护的某些短语。

谢谢迈克