我配置了sendmail.ini和php.ini,但我无法使用php中的mail()函数发送电子邮件

时间:2013-05-27 15:21:33

标签: php

这是我的sendmail.ini文件:

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=mymail@gmail.com
auth_password=****************
force_sender=mymail@gmail.com

发送电子邮件后,我的debug.log文件如下所示:

13/05/27 20:46:36 ** Connecting to smtp.gmail.com:25
13/05/27 20:46:40 ** Connected.
13/05/27 20:46:42 << 220 mx.google.com ESMTP dr6sm30900757pac.11 - gsmtp<EOL>
13/05/27 20:46:42 >> EHLO ANKON-PC<EOL>
13/05/27 20:46:44 << 250-mx.google.com at your service, [202.134.13.131] 

<EOL>250-SIZE   
<EOL>250-8BITMIME<EOL>250-STARTTLS<EOL>250-ENHANCEDSTATUSCODES<EOL>250 ...<EOL>

13/05/27 20:46:44 ** Authenticating as mymail@gmail.com
13/05/27 20:46:44 >> STARTTLS<EOL>
13/05/27 20:46:45 << 220 2.0.0 Ready to start TLS<EOL>
13/05/27 20:46:45 >> QUIT<EOL>
13/05/27 20:46:46 <<  5  1Q£q×:Y

ý‰KÿhÓ&ïË‹­¶ð3Àm¼`      ÿ   #  E A > „0‚€0‚é 

13/05/27 20:46:47 <<  F
13/05/27 20:46:47 ** Disconnected.
13/05/27 20:46:47 ** Disconnecting from smtp.gmail.com:25
13/05/27 20:46:47 ** Disconnected.
13/05/27 20:46:47 ** Disconnected.
13/05/27 20:46:47 ** Connection Closed Gracefully.

但实际上这些东西第一次起作用,但之后它不起作用。 我在我的电脑中使用xampp。 那么我该怎么做才能发送电子邮件。 请有人告诉我。

4 个答案:

答案 0 :(得分:1)

您不能以这种方式简单地指定像gmail这样的外部邮件服务器,并且即使使用正确的凭据也可以使用它。你根本不会使用PHP mail()函数。

我的建议是完全放弃mail()功能 - 它有很多缺点,其中只有一个缺点。

而是下载phpMailer library。这是一个PHP类,它通过PHP发送邮件很多更简单。

特别是在你的情况下,它可以通过内置的gMail发送,这意味着你不需要乱搞你的服务器配置或设置你自己的邮件中继或类似的东西;只需按照this example让phpMailer使用您的gMail帐户,您就可以快速启动并运行。

希望有所帮助。

答案 1 :(得分:1)

尝试: smtp_ssl =无

SMTPS(SSL)支持

auto =对端口465使用SSL,否则尝试使用TLS

ssl =总是使用SSL

tls =总是使用TLS

none =从不尝试使用SSL

答案 2 :(得分:0)

您需要将SMTP服务器/ sendmail配置为完整中继主机。由于sendmail非常陈旧且配置非常复杂,因此您应该考虑Exim(如@edwardmp建议)或后缀。

实际上,您的安装缺少像SSL这样的部分,并且这也意味着您需要生成服务器证书,证书颁发机构等等,并且可能还缺少其他部分。

问题是,网络上是否有中继主机可以访问,以及您是否可以使用(您的公司如何发送电子邮件?)

答案 3 :(得分:0)

  1. 右键单击sendmail.exe
  2. 属性
  3. 兼容性
  4. 更改所有用户的设置
  5. 打开可比性模式。