2010-11-04 23 views
9

Voglio imparare yii come il mio primo framework. E sto cercando di far funzionare il modulo di contatto. Ma ho ottenuto questo errore: alt textCome configurare php.ini per usare gmail come server di posta

Ho già configurato file php.ini da:

C:\wamp\bin\php\php5.3.0 

e cambiato il default per questi valori:

[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] 

che ho visto da qui che gmail non usa la porta 25, che è l'impostazione predefinita in php.ini. Così ho usato 23. E ho anche aperto quella porta nel firewall di Windows 7. Tramite regole in entrata.

Poi ho anche curato la configurazione principale nella mia applicazione Yii, per abbinare l'e-mail che sto usando:

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

Infine, ho riavviato WampServer. Quindi ho cancellato tutti i miei dati di navigazione. Perchè allora continuo a vedere che sta segnalando la porta 25 nell'errore. Ho perso qualcosa? Per favore aiuto.

+0

qualcuno in casa ??? hehe – user225269

+2

porta 25 e 23 sono entrambe sbagliate. Inoltre gmail accetta solo smtp dopo l'autorizzazione.Quindi da qualche parte devi inserire il tuo nome utente e la password. Vedi http://mail.google.com/support/bin/answer.py?hl=it&answer=13287 Non so se yii è in grado di inviare posta usando TLS o SSL – wimh

risposta

4

Ecco un semplice script python che potrebbe consentire di eseguire un server di posta su localhost, non è necessario modificare nulla. Scusa se sono un po 'in ritardo.

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 

Nota: ho usato args [3] [0] e args [4] da affrontare e il messaggio come i args inviati da mia posta php() corrispondevano a una serie di args [3] [0] come e-mail receipent

+0

'' 'process_message''' non richiamato dopo che sto cercando di inviare tramite '' 'mail()' '' in php –

0

Se si utilizza WAMP, il php.ini da configurare è presente nel WAMP/bin/apache cartella/Apache_x_y/bin

dove _x_y è legato alla versione di Apache costruire utilizzata dal Installazione di Wamp

3

Se apri il file php.ini in WAMP, troverai questi due nes:

smtp_server 
smtp_port 

Aggiungi il numero del server e la porta per il vostro ospite (potrebbe essere necessario in contatto con loro per i dettagli)

Le due linee seguenti non esistono per impostazione predefinita:

auth_username 
auth_password 

Quindi sarà necessario aggiungerli per poter inviare posta da un server che richiede l'autenticazione. Quindi un esempio può essere:

smtp_server = mail.example.com 
smtp_port = 25 
auth_username = [email protected] 
auth_password = example_password 

ps: non si deve usare la propria posta personale qui. per una ragione ovvia.

+0

grazie mille per la formattazione .. Come sono nuovo non conoscevo le regole. e stile markdown .. @DACrosby –

0
  1. uncomment extension = php_openssl.dll a php.ini server WAMP ("D: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini")

  2. Nel file "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; 
Problemi correlati