Làm cách nào để gửi thư bằng PHP từ máy chủ cục bộ bằng máy chủ WAMP?

Khi tôi phát triển chức năng email trên máy chủ cục bộ của mình, tôi muốn thiết lập tài khoản Gmail để gửi email từ máy chủ cục bộ của mình. Nó thuận tiện và dễ dàng để thiết lập. Hôm nay, tôi sẽ chia sẻ cách thiết lập tài khoản Gmail để gửi email từ máy chủ WAMP của bạn.  

Lưu ý rằng Sendmail chỉ hoạt động cho Windows.  

trong bài viết này.

Tải xuống gửi thư. khóa kéo

Gửi thư. exe là một ứng dụng bảng điều khiển cửa sổ đơn giản mô phỏng tùy chọn “-t” của sendmail để gửi email qua đường dẫn stdin. Nó được thiết kế để dễ dàng chạy mã Unix có mã cứng làm phương tiện gửi email. Nó không hỗ trợ chuyển phát chậm và yêu cầu máy chủ SMTP thực hiện chuyển phát thư thực sự. Bạn có thể tải xuống gói Sendmail từ dòng bên dưới. làm phương tiện gửi email. Nó không hỗ trợ chuyển phát chậm và yêu cầu máy chủ SMTP thực hiện chuyển phát thư thực sự. Bạn có thể tải xuống gói Sendmail từ dòng bên dưới. làm phương tiện gửi email. Nó không hỗ trợ chuyển phát chậm và yêu cầu máy chủ SMTP thực hiện chuyển phát thư thực sự. Bạn có thể tải xuống gói Sendmail từ dòng bên dưới. làm phương tiện gửi email. Nó không hỗ trợ chuyển phát chậm và yêu cầu máy chủ SMTP thực hiện chuyển phát thư thực sự. Bạn có thể tải xuống gói Sendmail từ dòng bên dưới. làm phương tiện gửi email. Nó không hỗ trợ chuyển phát chậm và yêu cầu máy chủ SMTP thực hiện chuyển phát thư thực sự. Bạn có thể tải xuống gói Sendmail từ dòng bên dưới.
tải xuống sendmail. nén

Cài đặt Sendmail

  • Trích xuất thư gửi. zip sau đó bạn sẽ thấy thư mục sendmail
  • Sao chép và dán thư mục sendmail tại “C. \wamp64\” vị trí cài đặt Wamperver của bạn. Trong trường hợp của tôi, tôi đã cài đặt Wamperver trong C. \wamp64
  • Trong thư mục sendmail, tìm sendmail. ini và chỉnh sửa nó với cài đặt sau. Như tôi đã đề cập trước đó, tôi sẽ sử dụng tài khoản Gmail để cài đặt máy chủ thư
smtp_server=smtp.gmail.com
smtp_port=587
auth_username=your_username
auth_password=your_password
  • lưu và đóng tập tin

Xác thực 2 yếu tố về vấn đề Tài khoản Google [Đã giải quyết]

Lưu ý quan trọng, gần đây Google buộc bạn phải bật “xác thực 2 yếu tố” trên tài khoản Google của mình. Nếu tài khoản Google của bạn đã được kích hoạt “xác thực 2 yếu tố”, bạn không thể sử dụng mật khẩu thông thường của tài khoản để thiết lập trong sendmail. ban đầu. Thay vào đó, bạn cần tạo mật khẩu dành riêng cho ứng dụng [16 ký tự] từ tài khoản Google của mình và sử dụng mật khẩu ứng dụng mới mà bạn vừa tạo trong auth_password trong sendmail. ban đầu. Dưới đây là cách tạo mật khẩu dành riêng cho ứng dụng từ tài khoản Google của bạn

Cách tạo mật khẩu dành riêng cho ứng dụng từ tài khoản Google của bạn

Lưu ý rằng, giao diện tài khoản Google được thay đổi theo thời gian. Bạn có thể không thấy các bước chính xác tôi hiển thị bên dưới. Nhưng bạn vẫn muốn tìm phần mật khẩu dành riêng cho ứng dụng

  • Đăng nhập vào tài khoản Google của bạn
  • Điều hướng đến menu Bảo mật
  • Trên trang Bảo mật, hãy tìm “Mật khẩu ứng dụng” trong phần “Đăng nhập vào Google”
  • Nhấp vào “Mật khẩu ứng dụng“ và trang sẽ chuyển hướng đến trang xác minh. Chỉ cần nhập mật khẩu thông thường cho tài khoản Google của bạn
  • Sau đó, bạn sẽ thấy trang Mật khẩu ứng dụng
  • Trên trang Mật khẩu ứng dụng, chọn ứng dụng và thiết bị bạn muốn tạo mật khẩu ứng dụng. Nếu không có lựa chọn nào phù hợp với nhu cầu của bạn, bạn sẽ chọn “Khác [Tên tùy chỉnh]“. Trong trường hợp của tôi, tôi chọn “Other [Custom name]“. Chúng ta sẽ tiếp tục với lựa chọn “Other [Custom name]”
  • Sau đó, bạn cần nhập tên nhãn của mật khẩu ứng dụng mới của mình. Sau đó, bạn sẽ nhấp vào nút “TẠO”
  • Tiếp theo, cửa sổ bật lên mới với 16 ký tự sẽ hiển thị. Bạn muốn sao chép 16 ký tự đó và dán chúng vào tệp cấu hình bạn muốn. Trong bài viết này, chúng ta sẽ dán 16 ký tự vào auth_password trong sendmail. ban đầu

định cấu hình php. ban đầu

  • Tại biểu tượng wamp [màu xanh] click vào biểu tượng wamp đó rồi tìm đến PHP rồi tìm php. thực đơn ini
  • Nhấp vào php. ini sau đó tuân theo cài đặt bên dưới
[mail function]
SMTP=smtp.gmail.com
smtp_port=587
sendmail_path ="C:\wamp64\sendmail\sendmail.exe"
sendmail_from ="yourmail@gmail.com"

Lưu ý rằng cài đặt SMTP và smtp_port giống như chúng tôi đã đặt trong sendmail. ini ở trên

  • Tiếp theo, lưu php. ini và khởi động lại tất cả các dịch vụ của Wamperver
  • Cuối cùng, sau khi khởi động lại tất cả các dịch vụ, bạn sẽ thấy biểu tượng wamp chuyển sang màu xanh lục

Kiểm tra bằng cách gửi email từ máy chủ cục bộ của bạn

Để kiểm tra việc gửi email của chúng tôi, chúng tôi sẽ tạo tệp PHP mới trong thư mục www [root]. Sau đó copy đoạn code bên dưới vào file PHP. Cuối cùng, chạy tệp PHP này thông qua trình duyệt của bạn. Dưới đây là mã để thử nghiệm

Gửi mã email cho PHP

Dưới đây là các bước

  • Tạo send_email_testing. php tại webroot của bạn. Đối với Wamp, webroot sẽ là “C. \wamp64\www”. Vì vậy, nó sẽ là “C. \wamp64\www\send_email_testing. php“
  • Copy đoạn mã trên vào send_email_testing. php
  • Đảm bảo, wamp của bạn đang chạy [biểu tượng màu xanh lục]
  • Sau đó mở trình duyệt của bạn và gõ http. // localhost/send_email_testing. php và nhấn enter
  • Nếu bạn thấy thông báo “Success” trên màn hình có nghĩa là email của bạn được gửi qua tài khoản Gmail thành công
  • Nếu bạn thấy thông báo “Không thành công” trên màn hình, điều đó có nghĩa là bạn cần kiểm tra cài đặt thư của mình trong sendmail. ini và php. ini một lần nữa. Sau khi thay đổi cài đặt, đừng quên khởi động lại Wamp
  • Từ đoạn mã trên, tôi gửi một email kiểm tra tới “nobody@example. com” là một email giả. Bạn phải thay đổi địa chỉ email thực tế

Không thể gửi email qua tài khoản Gmail?

Nếu quá trình kiểm tra của bạn hiển thị thông báo “Không đạt” trên màn hình, bạn nên kiểm tra tệp nhật ký lỗi trong thư mục sendmail. Tệp nhật ký lỗi nằm trong “c. \wamp64\sendmail\lỗi. nhật ký”

Sự cố BadCredentials hoặc Tên người dùng và Mật khẩu không được chấp nhận

Vào năm 2018, tôi gặp lỗi “Tên người dùng và mật khẩu không được chấp nhận” và một số điều về “BadCredentials“. Bạn cũng có thể nhận được cảnh báo bảo mật quan trọng trong email của mình. Email cảnh báo sẽ thông báo về "Nỗ lực đăng nhập đã bị chặn"

Trong giải pháp của tôi tại thời điểm đó, tôi phải bật “Truy cập ứng dụng kém an toàn hơn” từ tài khoản Gmail của mình. Để bật nó, chỉ cần đi tới Cài đặt>Tài khoản và nhập>Cài đặt tài khoản Google khác. Sau đó, trong phần Bảo mật, hãy tìm “Truy cập ứng dụng kém an toàn hơn“. Sau đó, chỉ cần bật quyền truy cập

Lưu ý quan trọng, sau khi bạn kiểm tra xong email cho dự án của mình, bạn nên tắt quyền truy cập để bảo mật

Vấn đề xác thực 2 yếu tố

Nếu tài khoản Google của bạn bật “xác thực 2 yếu tố“, bạn có thể nhận được thông báo lỗi “Yêu cầu mật khẩu dành riêng cho ứng dụng” trong tệp nhật ký lỗi có thể tìm thấy trong thư mục sendmail. Để khắc phục nó, chỉ cần làm theo

Vẫn không thể gửi email qua tài khoản Gmail?

Bạn cố gắng thiết lập tài khoản Gmail của mình và bạn không thể gửi email từ máy chủ cục bộ của mình. Có một cách khác bạn có thể thử

Bẫy thư

Bạn có thể đăng ký MailTrap, một máy chủ thử nghiệm SMTP giả mạo. Có một gói miễn phí với 50 email giới hạn. Tất cả các email mà bạn gửi đi từ WordPress, sẽ CHỈ xuất hiện trong MailTrap. Ví dụ: bạn gửi email tới abc@gmail. com. Email này sẽ xuất hiện trong MailTrap thay vì abc@gmail. tài khoản com

  • Khi bạn đăng ký, bạn sẽ thấy trang hộp thư đến
MailTrap – Trang hộp thư đến
  • Bấm vào hộp Demo hoặc biểu tượng bánh răng dưới cột Hành động, bạn sẽ thấy trang thông báo
MailTrap – Cấu hình SMTP cho WordPress
  • Trên trang này, bạn sẽ thấy tab cài đặt SMTP. Trong phần Tích hợp, chọn WordPress. Bạn sẽ thấy cấu hình WordPress SMTP bên dưới
function mailtrap[$phpmailer] {
  $phpmailer->isSMTP[];
  $phpmailer->Host = 'smtp.mailtrap.io';
  $phpmailer->SMTPAuth = true;
  $phpmailer->Port = 2525;
  $phpmailer->Username = '11111111111111';
  $phpmailer->Password = '11111111111111';
}

add_action['phpmailer_init', 'mailtrap'];
  • Bây giờ, bạn có thể sử dụng cấu hình SMTP từ MailTrap để thay thế cài đặt SMTP của Gmail trong sendmail. ini và php. ban đầu
  • Để thay thế cài đặt Gmail SMTP bằng cài đặt MailTrap SMTP trong sendmail. ban đầu. Bạn sẽ làm như dưới đây
smtp_server=smtp.mailtrap.io
smtp_port=2525
auth_username=11111111111111
auth_password=11111111111111
  • Bây giờ, bạn có thể kiểm tra email được gửi bởi http. // localhost/send_email_testing. php, bạn sẽ thấy thông báo thành công trên trình duyệt của mình

Chỉ dành cho WordPress – sử dụng plugin Post SMTP

Đối với WordPress, bạn thử dùng sendmail bằng cả tài khoản Gmail và MailTrap nhưng không được. Thay vào đó, bạn có thể dùng thử plugin Post SMTP

Plugin rất đơn giản và dễ sử dụng. Bạn có thể cấu hình máy chủ thư SMTP trong vòng 1 hoặc 2 phút. Sau đó kiểm tra bằng cách gửi email. Một lợi ích khác mà bạn nhận được từ plugin Post SMTP là nhật ký email. Nhật ký email rất tiện dụng và giúp bạn gỡ lỗi khi gửi email đi. Post SMTP plugin sẽ hoạt động cho tất cả các nền tảng hoạt động [Windows, Mac và Ubuntu]

Thư rác

Đảm bảo kiểm tra email kiểm tra từ thư rác của bạn. Đôi khi, email kiểm tra rơi vào thư rác

Gói [lại

Có thể gửi email trên localhost rất tiện lợi. Bạn không cần máy chủ dàn dựng hoặc thử nghiệm trên sản xuất, đây không phải là ý tưởng hay để thử nghiệm trên sản xuất. Bạn chỉ cần đảm bảo rằng bạn không vô tình gửi email kiểm tra đến email của khách hàng hoặc khách hàng của khách hàng vì bạn sử dụng cùng một cơ sở dữ liệu từ quá trình sản xuất

Đó là nó. Nếu bài viết của tôi hữu ích và tiết kiệm thời gian của bạn, vui lòng cân nhắc mua cho tôi một ly cà phê hôm nay. 🙂

Làm cách nào để gửi thư bằng PHP trong localhost?

Gửi email từ Localhost bằng PHP .
Bao gồm thư viện PHPMailer và tạo một thể hiện của lớp này
Đặt thông tin đăng nhập SMTP [máy chủ, tên người dùng, mật khẩu và cổng]
Chỉ định tên người gửi và email [ $mail->setFrom ]
Đặt địa chỉ email người nhận [ $mail->addAddress ]
Đặt chủ đề email [ $mail->Subject ]

Chúng tôi có thể gửi email qua localhost không?

Bạn có thể gửi thư từ máy chủ cục bộ bằng gói sendmail , gói sendmail được tích hợp sẵn trong XAMPP. Vì vậy, nếu bạn đang sử dụng XAMPP thì bạn có thể dễ dàng gửi thư từ localhost. Ví dụ, bạn có thể cấu hình C. \xampp\php\php. ini và c. \xampp\sendmail\sendmail.

Làm cách nào để gửi email bằng PHP?

PHP sử dụng hàm mail[] để gửi email. Hàm này yêu cầu ba đối số bắt buộc chỉ định địa chỉ email của người nhận, chủ đề của thư và thư thực tế, ngoài ra còn có hai tham số tùy chọn khác. thư [đến, chủ đề, tin nhắn, tiêu đề, tham số];

Chức năng thư PHP có hoạt động trên máy chủ cục bộ không?

Trong ứng dụng web PHP, hàm mail[] dùng để gửi thư. Nhưng chức năng mail[] sẽ không hoạt động trong môi trường localhost. Trong hướng dẫn này, chúng tôi sẽ gửi email từ hệ thống localhost bằng PHP và Gmail. Trong hướng dẫn này, chúng tôi sẽ sử dụng PHPmailer để gửi email từ localhost bằng PHP

Chủ Đề