如何配置 php.ini 使用 gmail 作为邮件服务器
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4095289/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to configure php.ini to use gmail as mail server
提问by user225269
I want to learn yii as my first framework. And I'm trying to make the contact form work. But I got this error:
我想学习 yii 作为我的第一个框架。我正在努力使联系表格有效。但我收到了这个错误:
I've already configured php.ini file from:
我已经从以下位置配置了 php.ini 文件:
C:\wamp\bin\php\php5.3.0
And changed the default to these values:
并将默认值更改为以下值:
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = ssl:smtp.gmail.com
; http://php.net/smtp-port
smtp_port = 23
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]
I've seen from here that gmail doesn't use port 25, which is the default in the php.ini. So I used 23. And also opened that port in the windows 7 firewall. Via inbound rules.
我从这里看到 gmail 不使用端口 25,这是 php.ini 中的默认端口。所以我使用了 23。并且还在 Windows 7 防火墙中打开了该端口。通过入站规则。
Then I also edited the main config in my yii application, to match the email that I'm using:
然后我还在我的 yii 应用程序中编辑了主配置,以匹配我正在使用的电子邮件:
// application-level parameters that can be accessed
// using Yii::app()->params['paramName']
'params'=>array(
// this is used in contact page
'adminEmail'=>'[email protected]',
),
);
Finally, I restarted wampserver. Then cleared all my browsing data. Why then to I still see that its pointing out port 25 in the error. Have I miss something? Please help.
最后,我重新启动了 wampserver。然后清除我所有的浏览数据。为什么然后我仍然看到它在错误中指出了端口 25。我错过了什么吗?请帮忙。
回答by ppsreejith
Heres a simple python script which could allow you to run a mail server on localhost, you dont have to change anything. Sorry if im a bit late.
这是一个简单的 python 脚本,它可以让您在本地主机上运行邮件服务器,您无需更改任何内容。对不起,如果我有点晚了。
import smtpd
import smtplib
import asyncore
class SMTPServer(smtpd.SMTPServer):
def __init__(*args, **kwargs):
print "Running fake smtp server on port 25"
smtpd.SMTPServer.__init__(*args, **kwargs)
def process_message(*args, **kwargs):
to = args[3][0]
msg = args[4]
gmail_user = 'yourgmailhere'
gmail_pwd = 'yourgmailpassword'
smtpserver = smtplib.SMTP("smtp.gmail.com",587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(gmail_user, gmail_pwd)
smtpserver.sendmail(gmail_user, to, msg)
print 'sent to '+to
pass
if __name__ == "__main__":
smtp_server = SMTPServer(('localhost', 25), None)
try:
asyncore.loop()
except KeyboardInterrupt:
smtp_server.close()
#end of code
Note: I used args[3][0] and args[4] as to address and message as the args sent by my php mail() corresponded to an array of args[3][0] as receipent email
注意:我使用 args[3][0] 和 args[4] 作为地址和消息,因为我的 php mail() 发送的 args 对应于一组 args[3][0] 作为接收电子邮件
回答by lalit mohan
If you open the php.ini
file in WAMP, you will find these two lines:
如果你php.ini
在 WAMP 中打开文件,你会发现这两行:
smtp_server
smtp_port
Add the server and port number for your host (you may need to contact them for details)
为您的主机添加服务器和端口号(您可能需要与他们联系以获取详细信息)
The following two lines don't exist by default:
默认情况下不存在以下两行:
auth_username
auth_password
So you will need to add them to be able to send mail from a server that requires authentication. So an example may be:
因此,您需要添加它们才能从需要身份验证的服务器发送邮件。所以一个例子可能是:
smtp_server = mail.example.com
smtp_port = 25
auth_username = [email protected]
auth_password = example_password
ps: you should not use your personal mail here. for an obvious reason.
ps:你不应该在这里使用你的个人邮件。出于一个明显的原因。
回答by evcha
uncomment extension=php_openssl.dll at php.ini in WAMP server ("D:\wamp\bin\apache\Apache2.4.4\bin\php.ini")
In the file "D:\wamp\www\mantisbt-1.2.15\config_inc.php"
在 WAMP 服务器中的 php.ini 中取消注释 extension=php_openssl.dll ("D:\wamp\bin\apache\Apache2.4.4\bin\php.ini")
在文件“D:\wamp\www\mantisbt-1.2.15\config_inc.php”中
# --- Email Configuration --- $g_phpMailer_method = PHPMAILER_METHOD_SMTP; $g_smtp_host = 'smtp.gmail.com'; $g_smtp_connection_mode = 'ssl'; $g_smtp_port = 465; $g_smtp_username = '[email protected]'; $g_smtp_password = 'yourpwd'; $g_enable_email_notification = ON; $g_log_level = LOG_EMAIL | LOG_EMAIL_RECIPIENT; $g_log_destination = 'file:/tmp/log/mantisbt.log'; $g_administrator_email = '[email protected]'; $g_webmaster_email = '[email protected]'; $g_from_email = '[email protected]'; $g_return_path_email = '[email protected]'; $g_from_name = 'Mantis Bug Tracker'; $g_email_receive_own = OFF; $g_email_send_using_cronjob = OFF;
回答by nrip
If using WAMP, the php.ini to be configured is present in the wamp/bin/apache/Apache_x_y/bin folder
如果使用 WAMP,则要配置的 php.ini 存在于 wamp/bin/apache/Apache_x_y/bin 文件夹中
where _x_y is related to the version of the Apache build used by your wamp installation
其中 _x_y 与 wamp 安装使用的 Apache 构建版本相关