最初のフレームワークとしてyiiを学びたいと思います。そして、連絡フォームを機能させようとしています。しかし、次のエラーが発生しました:
私はすでに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が指摘されているのがわかります。私は何かを逃したことがありますか?助けてください。
簡単な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]を使用しました
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:ここでは個人的なメールを使用しないでください。明らかな理由で。
wAMPサーバーのphp.iniにあるextension = php_openssl.dllのコメントを外します( "D:\ wamp\bin\Apache\Apache2.4.4\bin\php.ini")
ファイル「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;
WAMPを使用している場合、構成するphp.iniはwamp/bin/Apache/Apache_x_y/binフォルダーにあります
ここで、_x_yは、Wampインストールで使用されるApacheビルドのバージョンに関連しています