【问题标题】:How does imap_mail know which IMAP connection to use when it has no parameter for that?当 imap_mail 没有参数时,它如何知道要使用哪个 IMAP 连接?
【发布时间】:2021-04-07 10:43:23
【问题描述】:

我不得不使用 IMAP 发送电子邮件,因为我的电子邮件提供商很烦人地不支持 SMTP。

所以我查找了如何在 PHP 中通过 IMAP 发送电子邮件。

我发现了这个:https://www.php.net/manual/en/function.imap-mail.php

imap_mail(字符串 $to ,字符串 $subject ,字符串 $message [,字符串 $additional_headers = null [,字符串 $cc = null [,字符串 $bcc = null [,字符串 $rpath = null ]]]]):布尔

所有其他 imap_* 函数都有一个参数来指定要使用的 IMAP 连接。这个函数没有。

imap_mail 如何知道要使用哪个“IMAP 句柄”?

【问题讨论】:

  • 您可以通过 IMAP 发送邮件吗? stackoverflow.com/questions/1627596/…
  • 一般来说,IMAP 不能用于发送邮件(一些很少使用的扩展除外)。 PHP 的 mail() 命令(以及扩展 imap_mail)依赖于 sendmail 程序或类似的现有程序(或者可能是 SMTP?),它们不通过 IMAP 发送。

标签: php imap


【解决方案1】:

与其他 imap_* 函数不同,imap_mail 是一个类似于 mail() 的函数,但它允许在正确处理抄送和密送收件人的情况下发送电子邮件。

对于其他 imap_* 函数,它们作用于已经建立的 IMAP 句柄 ($imap_stream),这就是为什么这些 imap_* 函数需要 $imap_stream 才能工作。 (例如,imap_open 将返回一个 $imap_stream)

假设您的 PHP 正在处理两个或多个 $imap_streams,那么如果您执行 imap_check 函数,系统必须知道您指的是哪个 imap_stream。

【讨论】:

  • 嗯...嗯...那我该怎么做呢?如何发送电子邮件?如果它只是mail() 的包装器,那它毫无价值,与 IMAP 无关?
  • 那么我如何通过 IMAP 从 PHP 发送电子邮件?我有 PHPMailer,但它似乎只与 SMTP 有关。我以前只需要通过 SMTP 发送电子邮件。我以为这是一个标准。我几乎不知道你甚至可以通过 IMAP 发送电子邮件......但现在我不得不
  • 供您参考,发送电子邮件的协议是 SMTP。 IMAP 协议只是一种指定如何处理特定邮箱中的邮件的方式。 (您可以研究 POP3 和 IMAP 协议之间的区别。)。这就是为什么当您在电子邮件客户端(例如 Outlook / Thunderbird)中添加电子邮件帐户时,您需要输入用于发送邮件的 SMTP 设置。
猜你喜欢
  • 1970-01-01
  • 2015-05-21
  • 2016-04-13
  • 2022-12-03
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
相关资源
最近更新 更多