2010-11-04 37 views
9

Tôi muốn tìm hiểu yii làm khung công tác đầu tiên của mình. Và tôi đang cố gắng làm cho biểu mẫu liên hệ hoạt động. Nhưng tôi đã nhận lỗi này: alt textCách cấu hình php.ini để sử dụng gmail làm máy chủ thư

Tôi đã cấu hình file php.ini từ:

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

Và thay đổi mặc định với các giá trị:

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

Tôi đã nhìn thấy từ ở đây gmail không sử dụng cổng 25, đây là mặc định trong php.ini. Vì vậy, tôi đã sử dụng 23. Và cũng đã mở cổng đó trong tường lửa của Windows 7. Thông qua quy tắc gửi đến.

Sau đó, tôi cũng sửa cấu hình chính trong ứng dụng yii tôi, để phù hợp với email mà tôi đang sử dụng:

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

Cuối cùng, tôi khởi động lại wampserver. Sau đó xóa tất cả dữ liệu duyệt web của tôi. Tại sao sau đó tôi vẫn thấy rằng nó chỉ ra cổng 25 trong lỗi. Tôi có nhớ điều gì không? Hãy giúp tôi.

+0

Bất cứ nhà ??? hehe – user225269

+2

cổng 25 và 23 đều sai. Hơn nữa gmail chỉ chấp nhận smtp sau khi ủy quyền.Vì vậy, một nơi nào đó bạn cũng phải nhập tên người dùng và mật khẩu của bạn. Xem http://mail.google.com/support/bin/answer.py?hl=vi&answer=13287 Tôi không biết liệu yii có thể gửi thư bằng TLS hay SSL – wimh

Trả lời

4

Là một tập lệnh python đơn giản có thể cho phép bạn chạy máy chủ thư trên máy chủ cục bộ, bạn không phải thay đổi bất kỳ thứ gì. Xin lỗi nếu im muộn một chút.

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 

Lưu ý: Tôi sử dụng args [3] [0] và args [4] như để giải quyết và thông điệp như args gửi qua đường bưu điện php của tôi() tương ứng với một mảng của args [3] [0] như email receipent

+0

'' 'process_message''' không được gọi sau khi tôi đang cố gửi qua '' 'mail()' '' trong php –

0

Nếu sử dụng wamp, php.ini được cấu hình hiện diện trong wamp/bin/apache/Apache_x_y thư mục/bin

nơi _x_y có liên quan đến phiên bản của Apache Êđê dựng được sử dụng bởi bạn cài đặt wamp

3

Nếu bạn mở tệp php.ini trong WAMP, bạn sẽ tìm thấy hai tệp này nes:

smtp_server 
smtp_port 

Thêm máy chủ và số cổng cho máy chủ của bạn (bạn có thể cần phải liên hệ với họ để biết chi tiết)

Hai dòng sau đây không tồn tại theo mặc định:

auth_username 
auth_password 

Vì vậy, bạn sẽ cần thêm chúng để có thể gửi thư từ máy chủ yêu cầu xác thực. Vì vậy, ví dụ có thể là:

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

ps: bạn không nên sử dụng thư cá nhân của mình tại đây. vì một lý do rõ ràng.

+0

cảm ơn bạn rất nhiều vì đã định dạng .. Vì tôi mới không biết quy tắc. và phong cách đánh dấu .. @DACrosby –

0
  1. mở rộng bỏ ghi chú = php_openssl.dll tại php.ini trong máy chủ WAMP ("D: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini")

  2. Trong tập tin "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; 
Các vấn đề liên quan