当前位置: 首页 > 知识库问答 >
问题:

从IMAP存储电子邮件(唯一的电子邮件ID)?

喻子航
2023-03-14

如何在数据库中存储该电子邮件的唯一ID。

我尝试了$概述=imap_fetch_overview($inbox,$email_number,0);我收到了一堆数字,但问题是当其中一封电子邮件被删除时,数字会发生变化。

如何正确存储?MD5消息还是什么?

基本上,我试图在我的个人网络应用程序上接收电子邮件,在那里我可以管理和访问我自己的电子邮件。它使用imap调用gmail。

无论如何,我可以在哪里检查和存储新电子邮件?

/* connect to gmail */
        $hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
        $username = 'xxxx@gmail.com';
        $password = '';

        /* try to connect */
        $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());

        /* grab emails */
        $emails = imap_search($inbox,'ALL');
        dd($emails);
        /* if emails are returned, cycle through each... */
        if($emails) {

            /* begin output var */
            $output = '';

            /* put the newest emails on top */
            rsort($emails);

            /* for every email... */
            foreach($emails as $email_number) {

                /* get information specific to this email */
                $overview = imap_fetch_overview($inbox,$email_number,0);
                $message = imap_fetchbody($inbox,$email_number,2);

                /* output the email header information */
                $output.= '<div class="toggler '.($overview[0]->seen ? 'read' : 'unread').'">';
                $output.= '<span class="subject">'.$overview[0]->subject.'</span> ';
                $output.= '<span class="from">'.$overview[0]->from.'</span>';
                $output.= '<span class="date">on '.$overview[0]->date.'</span>';
                $output.= '</div>';

                /* output the email body */
                $output.= '<div class="body">'.$message.'</div>';
            }

            echo $output;
        } 

        /* close the connection */
        imap_close($inbox);

共有1个答案

蓬弘
2023-03-14

UID是为此目的而存在的,除非服务器给出不同的UIDVALIDITY值,否则它应该保持不变。

https://www.rfc-editor.org/rfc/rfc3501#section-2.3.1.1

UID 是 IMAP 标准的一部分,因此所有 IMAP 服务器都应正确实现它。如果您只针对gmail,那么您可能希望查看另一个值,因为可以在不同的标签下看到相同的邮件,然后该逻辑上相同的邮件的UID可能不同。我不知道gmail API。

 类似资料:
  • 问题内容: 我有一个包含字段的实体。该实体ID是ULID,因为我想允许用户更改他们的电子邮件地址,但我想确保电子邮件地址是两个独特的和。 我正在使用数据存储区交易。这是一个代码片段: 该字段已建立索引。作为交易的一部分,有什么方法可以在实体中搜索当前用户的电子邮件地址? 没有方法,所以我无法运行这样的查询: 恐怕使用 不能保证交易内的隔离。 问题答案: 简短的回答是“否”,除非您要查询特定的实体组

  • 我一直试图获取电子邮件正文与imap_fetchbody($stream,$msgno,$选项),但没有成功。 然后我尝试使用imap_fetchstructure($stream,$msgno),并使用各自的子类型手动解码每种类型,如:- 对于前两个,我可以用这样的东西来解码 但说到混合,我要么不知道,要么我该怎么办,要么我在哪里犯错。

  • 我正在为IMAP服务器编程,但遇到了一个问题:电子邮件来自哪里? 我一直认为事件的基本过程是: 发送方客户端使用SMTP协议向SMTP服务器(主机A)发送电子邮件 这让我想知道:电子邮件是如何从接受SMTP的服务器发送到提供服务的IMAP服务器的?他们有协议吗?他们会把它放在目录里吗? 我见过目录的用法——每个用户有一个文件——它似乎不适合大型用户群。当两个进程同时读/写数据时,它不会也会引起问题

  • 查看以下,详细了解如何处理与 iPhone 手机配对的 M600 上的电子邮件。 阅读您的 M600 上的电子邮件 如果您在手机上使用电子邮件通知,那么在您收到新邮件时会在您的 M600 看到通知。 阅读电子邮件 轻触通知。 利用您的 M600 回复电子邮件 您可以利用您的手腕表回复邮件。 回复电子邮件 轻触通知查看所有邮件 从屏幕底部向上滑动,查看您可以执行的操作。 轻触 Reply(回复),并

  • Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务。 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的。 我们来看看传统邮件是如何运作的。假设你现在在北京,要给一个香港的朋友发一封信,怎么做呢? 首先你得写好信,装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去。 信件会从就近的小

  • Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务。 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的。 我们来看看传统邮件是如何运作的。假设你现在在北京,要给一个香港的朋友发一封信,怎么做呢? 首先你得写好信,装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去。 信件会从就近的小