我是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
现在代码运行成功,但我没有收到任何邮件。
答案 0 :(得分: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,它将无效,因此更改为您的邮件服务器。
答案 1 :(得分:3)
默认情况下,您不会安装SMTP服务器,因此您无法直接从localhost发送电子邮件。您可以在本地设置SMTP服务器或使用第三方SMTP服务器。 查看http://www.mittalpatel.co.in/php_send_mail_from_localhost_using_gmail_smtp,了解如何使用第三方SMTP服务器从localhost发送邮件。
答案 2 :(得分:1)
该功能在本地主机上不起作用,因为locahost不能用作SMTP服务器,将内容上传到安装了SMTP的有效服务器,然后进行邮件呼叫。
答案 3 :(得分:0)
您的服务器没有本地邮件服务器。
解决方案很少:
答案 4 :(得分:0)
尝试在php.ini中设置以下内容,
或者您也可以使用php脚本设置此选项,
//请指定您要使用的邮件服务器或其他邮件服务器。(例如gmail,yahoo)
ini_set("SMTP","mail.YourDomain.com");
//请指定SMTP号码25和8889是有效的SMTP端口。
ini_set("smtp_port","25");
答案 5 :(得分:0)
这是给我答案的链接:
为Windows&#34;安装&#34;假sendmail。如果您不使用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"
(忽略&#34;仅限Unix&#34;位,因为我们实际上使用的是sendmail)
然后你必须配置&#34; sendmail.ini&#34;安装sendmail的目录中的文件:
sendmail的
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
答案 6 :(得分:0)
过去几周,我在我的centos盒子上遇到了这个问题,为其他人分享了这个问题,而且php中的mail()也没有发送问题......这解决了我所有mail()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