如何配置php.ini以使用gmail作为邮件服务器

时间:2010-11-04 09:29:09

标签: smtp gmail wamp php

我想学习yii作为我的第一个框架。我正在努力使联系表格有效。但我得到了这个错误: alt text

我已经从:

配置了php.ini文件
C:\wamp\bin\php\php5.3.0

并将默认值更改为以下值:

 [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 = myemail@gmail.com

我从这里看到gmail不使用端口25,这是php.ini中的默认端口。所以我用了23.而且还在windows 7防火墙中打开了那个端口。通过入境规则。

然后我也编辑了yii应用程序中的主配置,以匹配我正在使用的电子邮件:

// application-level parameters that can be accessed
    // using Yii::app()->params['paramName']
    'params'=>array(
        // this is used in contact page
        'adminEmail'=>'myemail@gmail.com',
    ),
);

最后,我重新启动了wampserver。然后清除了我的所有浏览数据。为什么然后我仍然看到它指出错误中的端口25。我错过了什么吗?请帮忙。

4 个答案:

答案 0 :(得分:4)

这是一个简单的python脚本,可以让你在localhost上运行一个邮件服务器,你不必改变任何东西。对不起,如果我有点晚。

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

注意:我使用args [3] [0]和args [4]作为地址和消息,因为我的php mail()发送的args对应于args [3] [0]的数组作为receipent email < / p>

答案 1 :(得分:3)

如果您在WAMP中打开php.ini文件,您会发现以下两行:

smtp_server
smtp_port

添加主机的服务器和端口号(您可能需要与他们联系以获取详细信息)

默认情况下,以下两行不存在:

auth_username
auth_password

因此,您需要添加它们才能从需要身份验证的服务器发送邮件。所以一个例子可能是:

smtp_server = mail.example.com
smtp_port = 25
auth_username = example_username@example.com
auth_password = example_password

ps:你不应该在这里使用你的个人邮件。原因很明显。

答案 2 :(得分:0)

如果使用WAMP,要配置的php.ini存在于wamp / bin / apache / Apache_x_y / bin文件夹中

其中_x_y与您的wamp安装使用的Apache版本的版本相关

答案 3 :(得分:0)

  1. 在WAMP服务器的php.ini中取消注释extension = php_openssl.dll(“D:\ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini”)

  2. 在文件“D:\ wamp \ www \ mantisbt-1.2.15 \ config_inc.php”

  3.     # --- 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        = 'yourmail@gmail.com'; 
        $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  = 'administrator@example.com';
        $g_webmaster_email      = 'webmaster@example.com';
        $g_from_email           = 'noreply@example.com';
        $g_return_path_email    = 'admin@example.com';  
        $g_from_name            = 'Mantis Bug Tracker';
        $g_email_receive_own    = OFF;
        $g_email_send_using_cronjob = OFF;
    
相关问题