tra-loi-cau-hoi-phat-trien-web.com

(WAMP / XAMPP) gửi Mail bằng cách sử dụng SMTP localhost

Làm cách nào để gửi thư từ localhost SMTP (sử dụng Wamp, Xampp hoặc vv ..)? PHP mail() dường như không hoạt động nguyên bản.

Bất cứ ai có thể đưa ra hướng dẫn?

29
T.Todua

Phương pháp 1 (Ưu tiên) - Sử dụng hMailServer


[.__.] Sau khi cài đặt, bạn cần cấu hình sau để gửi thư chính xác từ wamperver:

1) When you first open hMailServer Administrator, you need to add a new domain.
2) Click on the "Add Domain ..." button at the Welcome page. 
3) Under the domain text field, enter your computer's IP, in this case it should be 127.0.0.1.
4) Click on the Save button.
5) Go to Settings>Protocols>SMTP and select "Delivery of Email" tab
6) Enter "localhost" in the localhost name field.
7) Click on the Save button.

Nếu bạn cần gửi thư bằng cách sử dụng người nhận TỪ của một máy tính khác, bạn cần cho phép gửi từ tài khoản Bên ngoài đến Tài khoản Bên ngoài. Để làm điều đó, hãy làm theo các bước sau:

1) Go to Settings>Advanced>IP Ranges and double click on "My Computer" which should have IP address of 127.0.0.1
2) Check the Allow Deliveries from External to External accounts checkbox.
3) Save settings using Save button.

(Tuy nhiên, Windows Live/Hotmail đã từ chối tất cả các email đến từ các IP động mà hầu hết các máy tính dân dụng đang sử dụng. Cách giải quyết là sử dụng tài khoản Gmail)

Lưu ý khi sử dụng người dùng Gmail:

1) Go to Settings>Protocols>SMTP and select "Delivery of Email" tab
2) Enter "smtp.gmail.com" in the Remote Host name field.
3) Enter "465" as the port number
4) Check "Server requires authentication"
5) Enter gmail address in the Username
6) Enter gmail password in the password 
7) Check "Use SSL"

(Lưu ý, Từ trường không hoạt động với gmail)
[.__.] * p.s. Đối với một số người, có thể cần phải bỏ chọn mọi thứ trong require SMTP authentication in:

  • cho cục bộ: Cài đặt> Nâng cao> Phạm vi IP> "Máy tính của tôi"
  • cho bên ngoài: Cài đặt> Nâng cao> Phạm vi IP> "Internet"

Phương pháp 2 - Sử dụng SendMail

Bạn có thể sử dụng Cài đặt SendMail .


Phương pháp 3 - Sử dụng các phương pháp khác nhau

Sử dụng bất kỳ các phương thức này .

36
T.Todua

Đây là các bước để đạt được điều này:

  • Tải xuống sendmail.Zip thông qua điều này link

    • Bây giờ, giải nén thư mục và đặt nó vào C:/wamp /. Đảm bảo rằng bốn tệp này có mặt: sendmail.exe, libeay32.dll, ssleay32.ddl và sendmail.ini.
    • Mở sendmail.ini và đặt cấu hình như sau:

    • smtp_server = smtp.gmail.com

    • smtp_port = 465
    • smtp_ssl = ssl
    • default_domain = localhost
    • error_logfile = error.log
    • debug_logfile = debug.log
    • auth_username = [your_gmail_account_username] @ gmail.com
    • auth_password = [your_gmail_account_password]
    • pop3_server =
    • pop3_username =
    • pop3_password =
    • lực lượng_sender =
    • lực lượng_recipient =
    • tên máy chủ = localhost

    • Truy cập tài khoản email của bạn. Nhấp vào Công cụ bánh răng> Cài đặt> Chuyển tiếp và truy cập POP/IMAP> IMAP. Nhấp vào "Kích hoạt IMAP", sau đó lưu các thay đổi của bạn.

    • Chạy máy chủ WAMP của bạn. Kích hoạt ssl_module trong Mô-đun Apache.

    • Tiếp theo, kích hoạt php_openssl và php_sockets trong PHP.

    • Mở php.ini và cấu hình nó như các mã dưới đây. Về cơ bản, bạn chỉ cần đặt sendmail_path.

[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP =
; http://php.net/smtp-port
;smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t -i"
  • Khởi động lại máy chủ Wamp

Tôi hy vọng điều này sẽ làm việc cho bạn ..

5
Siraj Khan

Bạn có thể sử dụng thư viện này để gửi email, nếu gặp sự cố với xampp cục bộ, wamp ...

class.phpmailer.php, class.smtp.php Viết mã này vào tệp nơi chức năng email của bạn gọi

    include('class.phpmailer.php');

    $mail = new PHPMailer();  
    $mail->IsHTML(true);
    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "ssl";
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465;
    $mail->Username = "your email ID";
    $mail->Password = "your email password";
    $fromname = "From Name in Email";

$To = trim($email,"\r\n");
      $tContent   = '';

      $tContent .="<table width='550px' colspan='2' cellpadding='4'>
            <tr><td align='center'><img src='imgpath' width='100' height='100'></td></tr>
            <tr><td height='20'>&nbsp;</td></tr>
            <tr>
              <td>
                <table cellspacing='1' cellpadding='1' width='100%' height='100%'>
                <tr><td align='center'><h2>YOUR TEXT<h2></td></tr/>
                <tr><td>&nbsp;</td></tr>
                <tr><td align='center'>Name: ".trim(NAME,"\r\n")."</td></tr>
                <tr><td align='center'>ABCD TEXT: ".$abcd."</td></tr>
                <tr><td>&nbsp;</td></tr>                
                </table>
              </td>
            </tr>
            </table>";
      $mail->From = "From email";
      $mail->FromName = $fromname;        
      $mail->Subject = "Your Details."; 
      $mail->Body = $tContent;
      $mail->AddAddress($To); 
      $mail->set('X-Priority', '1'); //Priority 1 = High, 3 = Normal, 5 = low
      $mail->Send();
2
Uresh Patel

bạn có thể gửi thư trực tiếp từ hàm php mail () nếu bạn đã chỉ định máy chủ smtp và cổng smtp trong php.ini, trước tiên hãy hỏi thông tin máy chủ SMTP cho ISP của bạn.

SMTP = smtp.wlink.com.np //put your ISP's smtp server

smtp_port = 25 // your ISP's smtp port.

sau đó chỉ cần khởi động lại máy chủ Apache và nó sẽ bắt đầu hoạt động. Thưởng thức ...

2
Techlord

Nếu bất kỳ ai trong số các bạn gặp lỗi như sau khi trả lời câu trả lời được đưa ra bởi Afwe Wef

 Warning: mail() [<a href='function.mail'>function.mail</a>]: SMTP server response:

 550 The address is not valid. in c:\wamp\www\email.php

Truy cập php.ini

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]

Nhập [email protected] làm id email mà bạn đã sử dụng để định cấu hình hMailserver trước sendmail_from .

vấn đề của bạn sẽ được giải quyết.

Đã thử nghiệm trên máy chủ Wamp2.2 (Apache 2.2.22, php 5.3.13) trên windows 8

Nếu bạn cũng nhận được lỗi sau

"APPLICATION"   6364    "2014-03-24 13:13:33.979"   "SMTPDeliverer - Message 2: Relaying to Host smtp.gmail.com."
"APPLICATION"   6364    "2014-03-24 13:13:34.415"   "SMTPDeliverer - Message 2: Message could not be delivered. Scheduling it for later delivery in 60 minutes."
"APPLICATION"   6364    "2014-03-24 13:13:34.430"   "SMTPDeliverer - Message 2: Message delivery thread completed."

Bạn có thể đã quên thay đổi cổng từ 25 thành 465

0
Mukesh

Tôi thích sử dụng tập lệnh PHPMailer để gửi email từ localhost vì nó cho phép tôi sử dụng tài khoản Gmail của mình dưới dạng SMTP. Bạn có thể tìm thấy PHPMailer từ http://phpmailer.worxware.com/ . Có thể tìm thấy trợ giúp về cách sử dụng gmail làm SMTP hoặc bất kỳ SMTP nào khác tại http://www.mittalpatel.co.in/php_send_mail_from_localhost_USE_gmail_smtp . Hi vọng điêu nay co ich!

0
Mittal Patel