web-dev-qa-db-ja.com

php.iniを設定してGmailをメールサーバーとして使用する方法

最初のフレームワークとして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 = [email protected]

ここから、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'=>'[email protected]',
    ),
);

最後に、wampserverを再起動しました。その後、すべての閲覧データを消去しました。なぜそれでもエラーのポート25が指摘されているのがわかります。私は何かを逃したことがありますか?助けてください。

11
user225269

簡単な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

注:php mail()によって送信されたargsが受信メールとしてargs [3] [0]の配列に対応しているため、アドレスとメッセージとしてargs [3] [0]とargs [4]を使用しました

5
ppsreejith

php.ini WAMPのファイルには、次の2行があります。

smtp_server
smtp_port

ホストのサーバーとポート番号を追加します(詳細については、それらに連絡する必要がある場合があります)。

次の2行はデフォルトでは存在しません。

auth_username
auth_password

したがって、認証を必要とするサーバーからメールを送信できるようにするには、それらを追加する必要があります。したがって、例は次のようになります。

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

pS:ここでは個人的なメールを使用しないでください。明らかな理由で。

3
lalit mohan
  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」

#---メール設定--- 
 
 $ 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 = 'ファイル:/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; 
0
evcha

WAMPを使用している場合、構成するphp.iniはwamp/bin/Apache/Apache_x_y/binフォルダーにあります

ここで、_x_yは、Wampインストールで使用されるApacheビルドのバージョンに関連しています

0
nrip