AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 49536
Accepted
Tony
Tony
Asked: 2009-08-04 14:32:49 +0800 CST2009-08-04 14:32:49 +0800 CST 2009-08-04 14:32:49 +0800 CST

使用 PHP 邮件功能发送电子邮件时遇到问题。提供完整的跟踪

  • 772

我有一个简单的脚本设置:

<?php
mail('[email protected]', 'Hello World', 'Testing a message');
?>

我无法从我的服务器向 AOL 帐户发送电子邮件。错误详情如下。GMail 让我发送消息......所以我猜 AOL 只是有点严格。

   Starting tcpick 0.2.1 at 2009-08-03 22:25 UTC
    Timeout for connections is 600
    tcpick: reading from tcp_dump.pcap
    1      SYN-SENT       67.23.28.65:49516 > 64.12.138.153:smtp
    1      SYN-RECEIVED   67.23.28.65:49516 > 64.12.138.153:smtp
    1      ESTABLISHED    67.23.28.65:49516 > 64.12.138.153:smtp
    220-rly-mg05.mx.aol.com ESMTP mail_relay_in-mg05.6; Mon, 03 Aug 2009 18:25:34 -0400
    220-America Online (AOL) and its affiliated companies do not
    220-     authorize the use of its proprietary computers and computer
    220-     networks to accept, transmit, or distribute unsolicited bulk
    220-     e-mail sent from the internet.  Effective immediately:  AOL 
    220-     may no longer accept connections from IP addresses which 
    220      have no reverse-DNS (PTR record) assigned.
    EHLO bandop.com
    250-rly-mg05.mx.aol.com fallsroadsunoco.com
    250 HELP
    MAIL FROM:<www-data@com>
    501 SYNTAX ERROR IN PARAMETERS OR ARGUMENTS
    RSET
    250 OK
    QUIT
    1      FIN-WAIT-1     67.23.28.65:49516 > 64.12.138.153:smtp
    2      SYN-SENT       67.23.28.65:45729 > 216.239.113.101:smtp
    1      FIN-WAIT-2     67.23.28.65:49516 > 64.12.138.153:smtp
    221 SERVICE CLOSING CHANNEL
    1      RESET          67.23.28.65:49516 > 64.12.138.153:smtp
    3      SYN-SENT       67.23.28.65:45729 > 216.239.113.101:smtp
    tcpick: done reading from tcp_dump.pcap

    20 packets captured
    3 tcp sessions detected

你知道我怎样才能让 FROM 参数正确输出吗?在 PHP 邮件函数中设置 FROM 标头不起作用。

更新

这个小技巧正在起作用,但我更愿意在 PHP 之外解决这个问题。

mail('[email protected]', 'Hello World', 'Testing a message', null,'[email protected]');

我是邮件服务器的超级菜鸟

php email
  • 3 3 个回答
  • 3767 Views

3 个回答

  • Voted
  1. Best Answer
    Kyle Brandt
    2009-08-04T14:38:45+08:002009-08-04T14:38:45+08:00

    对于 AOL,他们通常不会通过,除非您填写表格以获得白名单。要更改邮件的来源,请编辑 php.ini 文件中的 sendmail_path 参数。这在附加参数下的php mail() 文档中提到。

    例如:

    sendmail_path = "/usr/sbin/sendmail -t -f [email protected]"
    

    您也可以将参数传递给 mail() 函数:

    <?php
    mail('[email protected]', 'the subject', 'the message', null,
       '[email protected]');
    ?>
    

    最后,您可能会发现替代邮件包更灵活,例如PEAR MAIL包或msmtp,您可以指定其他 smtp 服务器。

    • 2
  2. Marie Fischer
    2009-08-04T14:49:11+08:002009-08-04T14:49:11+08:00

    您要更改信封 From: 地址,该地址与 From: 标头不同。请参阅mail() 函数文档中的此评论。

    信封地址取决于您的 MTA 配置 - 在您的情况下,“www-data”是您的脚本运行的用户,“com”是您机器主机名的(部分?)。假设您在 *nix 上,您可以尝试像这样覆盖信封地址:

    mail('[email protected]', 'Hello World', 'Testing a message', null,'[email protected]');
    

    其中 [email protected] 是您要显示的信封发件人地址。

    如果可行,并且您可以访问 php.ini 文件,则可以在那里设置信封发件人地址 - 请参阅 Kyle 的帖子。

    您可能还想查看您的 MTA(sendmail、postfix)配置 - 看起来您的主机名设置有问题。更改 php-s 设置将为 php 修复它,但如果您系统上的其他东西(cron、logwatch)想要发送邮件,那么拥有一个正常工作的 MTA 会很有帮助。

    在您发表评论后进行编辑:在 不知道您的邮件服务器配置的情况下很难提出任何建议,但首先,请尝试以下操作:

    myhostname = mail.virtualhostname.com
    mydomain = virtualhostname.com
    myorigin = $mydomain
    masquerade_domains = virtualhostname.com
    
    • 1
  3. John Gardeniers
    2009-08-04T14:41:57+08:002009-08-04T14:41:57+08:00

    尝试转义 at 符号。

    mail('corgan1003\@aol.com', 'Hello World', 'Testing a message');
    
    • 0

相关问题

  • 针对大量邮件的 SMTP 服务的建议 [关闭]

  • 多操作系统环境的首选电子邮件客户端

  • mod_rewrite 不转发 GET 参数

  • Exchange 2007 的备份解决方案

  • 更改 PHP 的默认配置设置?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve