【问题标题】:Sending mail via fsockopen?通过 fsockopen 发送邮件?
【发布时间】:2011-05-05 02:16:46
【问题描述】:

我知道这是可能的,但我可以不用远程 SMTP 服务器或类似设备吗?基本上我想用 PHP 发送邮件,但没有 mail()

【问题讨论】:

  • 您的问题需要详细说明。通过文件共享和直接访问 mbox?
  • @stillstanding 不确定您所说的文件共享是什么意思。没有直接访问邮箱的权限。
  • 您的意思是“我是垃圾邮件发送者,但我的虚拟主机配额限制mail()。我如何才能覆盖此限制并发送我的垃圾邮件?”
  • @J-16 SDiZ,不,我的意思是我想了解更多有关套接字和传输协议的信息,我认为使用套接字发送邮件是一个不错的起点。

标签: php email fsockopen


【解决方案1】:

我不确定您对“没有远程 SMTP 服务器”的确切含义,因为在任何邮件传递中,至少必须涉及其中一个 - 一个接收邮件的原因是收件人...

您可以做的(由您决定是否值得努力)是使用 PHP 的套接字函数在端口 25 上打开与远程邮件服务器的连接。谷歌“SMTP telnet”获取 SMTP 会话外观的一些示例(非常简单,确实如此),然后谷歌搜索“SMTP codes”以获取有关远程服务器在说什么的更多解释。

【讨论】:

    【解决方案2】:

    考虑到您应该熟悉 SMTP、POP3 和/或 IMAP 才能与邮件服务器实际交换数据这一事实,这可能,但并非完全无关紧要。

    您需要对您的应用程序进行编码,使其模仿MTA 的行为,也就是说,如果您要执行 mail() 函数所做的事情 - 并使用套接字。如果您使用的是 Linux,另一种选择是对 sendmail 进行操作系统调用。

    【讨论】:

    • 对,我一直在研究它。划掉 localhost:8888 的东西(在一秒钟内编辑问题)主要是我想在没有 mail() 的情况下发送邮件
    【解决方案3】:

    如果不使用 mail(),请查看 PHPMailer

    我将这个库用于我所有的电子邮件代码。我已将其扩展为具有调试模式,因此我可以在测试代码时拦截传出的电子邮件。

    我可能是错的,但您将始终使用 SMTP 服务器,即使该服务器只是带有 sendmail 的网络服务器。如果您在 Windows 上运行 PHP,则需要启用 IIS 的内置 SMTP 服务。

    【讨论】:

      猜你喜欢
      • 2014-02-21
      • 2016-05-15
      • 2014-03-05
      • 2014-08-31
      • 2021-03-11
      • 2017-05-06
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多