15

我是 php 新手。我试图使用此代码从 php 发送邮件。

<?php

    $to      = 'sohil@gmail.com';
    $subject = 'The subject';
    $message = 'hello';
    $headers = 'From: sohil@yahoo.in' . "\r\n" .
        'Reply-To: receiver@yahoo.in' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

    mail($to, $subject, $message, $headers);

?>

我在 php.ini 中更改了设置

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = sohil@gmail.com

& 在 sendmail.ini 中

# A freemail service example
account Gmail
tls on
tls_certcheck off
host smtp.gmail.com
from sohil@gmail.com
auth on
user sohil@gmail.com
password xxxxxxxxx

# Set a default account
account default : Gmail

现在代码运行成功,但我没有收到任何邮件。

4

7 回答 7

4

您必须更改 php.ini 文件:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = you@yourdomain

如果设置了 localhost 它将不起作用,因此更改为您的邮件服务器。

于 2013-08-17T11:14:25.253 回答
3

默认情况下您不会安装 SMTP 服务器,因此您不能直接从 localhost 发送电子邮件。您可以在本地设置 SMTP 服务器,也可以使用第三方 SMTP 服务器。看看http://www.mittalpatel.co.in/php_send_mail_from_localhost_using_gmail_smtp它让您深入了解如何使用第三方 SMTP 服务器从 localhost 发送邮件。

于 2014-08-26T05:35:53.550 回答
1

该功能不适用于您的本地主机,因为本地主机不能用作 SMTP 服务器,请将您的内容上传到安装了 SMTP 的有效服务器,然后进行邮件呼叫。

于 2013-08-17T11:01:19.143 回答
0

您的服务器没有本地邮件服务器。

有几个解决方案:

  • 如果您有足够的权限,请安装本地邮件服务器
  • 更改您的 PHP 设置以使用其他邮件服务器(其他开放式邮件服务器或基于身份验证的邮件服务器,如 Gmail、Yahoo 等)
  • 使用支持 IMAP / POP3 的可用邮件库之一来处理邮件发送。SwiftMailer 或 Pear Mail 是最常用的一种。
于 2013-08-17T11:03:28.213 回答
0

尝试在您的 php.ini 中设置以下内容,

  1. “SMTP”到“mail.YourDomain.com”
  2. “smtp_port”到“25”

或者您也可以使用 php 脚本设置此选项,

// 请指定您的邮件服务器或您要使用的其他邮件服务器。(例如 gmail、yahoo)

ini_set("SMTP","mail.YourDomain.com");

// 请指定 SMTP 编号 25 和 8889 是有效的 SMTP 端口。

ini_set("smtp_port","25");
于 2013-08-17T11:14:26.510 回答
0

这是给我答案的链接:

安装“fake sendmail for windows”。如果你没有使用 XAMPP,你可以在这里下载:http: //glob.com.au/sendmail/sendmail.zip

修改 php.ini 文件以使用它(注释掉其他行):

邮件功能

仅适用于 Win32。

SMTP = smtp.gmail.com

smtp_port = 25

仅适用于 Win32。

sendmail_from = <e-mail username>@gmail.com

仅适用于 Unix。你也可以提供论据

(default: "sendmail -t -i").

sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

(忽略“仅 Unix”位,因为我们实际上使用的是 sendmail)

然后,您必须在安装 sendmail 的目录中配置“sendmail.ini”文件:

发邮件

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=<username>
auth_password=<password>
force_sender=<e-mail username>@gmail.com
于 2016-01-29T08:50:46.897 回答
0

过去几周我在我的 centos 盒子上遇到了这个问题,分享给其他人也有邮件()在 php 中没有发送的问题......这解决了我所有的邮件() php 脚本的问题。

// Enable the sendmail in selinux
setsebool -P httpd_can_sendmail 1

// Add the following to /etc/postfix/main.cf
relayhost = smtp.server.com

// Then from command line
service postfix restart
于 2017-08-17T21:43:37.113 回答