Как настроить php.ini для использования gmail в качестве почтового сервера - PullRequest
11 голосов
/ 04 ноября 2010

Я хочу выучить 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 ]

4 голосов
/ 13 июня 2012

Вот простой скрипт на 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

Примечание: я использовал args [3] [0] и args [4] в качестве адреса и сообщения, поскольку аргументы, отправленные моим php mail (), соответствуютмассив аргументов [3] [0] в качестве письма-получателя

3 голосов
/ 23 сентября 2013

Если вы откроете файл php.ini в WAMP, вы найдете эти две строки:

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: вы не должны использовать вашу личную почту здесь. по очевидной причине.

0 голосов
/ 10 октября 2013
  1. расширение для комментария = php_openssl.dll на php.ini на сервере WAMP ("D: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini")

  2. В файле "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        = '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;
0 голосов
/ 18 октября 2012

При использовании WAMP настраиваемый php.ini находится в папке wamp / bin / apache / Apache_x_y / bin

где _x_y относится к версии сборки Apache, используемой вашей установкой wamp

...