Je veux apprendre yii comme premier cadre. Et j'essaie de faire fonctionner le formulaire de contact. Mais j'ai eu cette erreur:
J'ai déjà configuré le fichier php.ini de:
C:\wamp\bin\php\php5.3.0
Et changé la valeur par défaut à ces valeurs:
[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]
J'ai vu à partir d'ici que Gmail n'utilise pas le port 25, qui est le port par défaut du fichier php.ini. J'ai donc utilisé 23. Et également ouvert ce port dans le pare-feu de Windows. Via des règles entrantes.
Ensuite, j'ai également modifié la configuration principale dans mon application yii, afin de correspondre au courrier électronique que j'utilise:
// application-level parameters that can be accessed
// using Yii::app()->params['paramName']
'params'=>array(
// this is used in contact page
'adminEmail'=>'[email protected]',
),
);
Enfin, j'ai redémarré wampserver. Puis effacé toutes mes données de navigation. Pourquoi alors je vois encore que son pointant sur le port 25 dans l'erreur. Ai-je raté quelque chose? S'il vous plaît aider.
Voici un script python simple qui pourrait vous permettre d’exécuter un serveur de messagerie sur localhost, vous ne devez rien changer. Désolé si je suis un peu en retard.
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 __== "__main__":
smtp_server = SMTPServer(('localhost', 25), None)
try:
asyncore.loop()
except KeyboardInterrupt:
smtp_server.close()
#end of code
Note: J'ai utilisé args [3] [0] et args [4] comme adresse et message car les args envoyés par mon mail php () correspondaient à un tableau d'args [3] [0] en tant que courrier électronique reçu.
Si vous ouvrez le fichier php.ini
dans WAMP, vous trouverez ces deux lignes:
smtp_server
smtp_port
Ajoutez le serveur et le numéro de port de votre hôte (vous devrez peut-être les contacter pour plus de détails)
Les deux lignes suivantes n'existent pas par défaut:
auth_username
auth_password
Vous devrez donc les ajouter pour pouvoir envoyer des messages depuis un serveur nécessitant une authentification. Donc, un exemple peut être:
smtp_server = mail.example.com
smtp_port = 25
auth_username = [email protected]
auth_password = example_password
ps: vous ne devez pas utiliser votre courrier personnel ici. pour une raison évidente.
uncomment extension = php_openssl.dll sur php.ini dans le serveur WAMP ("D:\wamp\bin\Apache\Apache2.4.4\bin\php.ini")
Dans le fichier "D:\wamp\www\mantisbt-1.2.15\config_inc.php"
# --- Configuration de la messagerie --- $ 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 = 'fichier: /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 = 'Traqueur de bogues Mantis'; $ g_email_receive_own = OFF; $ g_email_send_using_cronjob = OFF;
Si vous utilisez WAMP, le fichier php.ini à configurer est présent dans le dossier wamp/bin/Apache/Apache_x_y/bin
où _x_y est lié à la version de la construction Apache utilisée par votre installation de wamp