繁体   English   中英

php从localhost发送邮件

[英]php send mail from localhost

我是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

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

您必须更改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,它将无法工作,因此更改为您的邮件服务器。

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

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

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

解决方案很少:

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

尝试在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");

这是给我答案的链接:

安装“假的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

过去几周,我在我的centos盒子里遇到了这个问题,为其他人分享了这个问题,而且在php中没有发送邮件问题...这解决了我所有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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM