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

Gửi email từ mã PHP của bạn là điều bắt buộc đối với hầu hết các hoạt động web lớn hơn. Đôi khi bạn chỉ cần một email đơn giản với nội dung đơn giản, đôi khi bạn muốn một email HTML tùy chỉnh với CSS và kiểu dáng tùy chỉnh cho chiến dịch tiếp thị. Vâng, chúng ta có thể làm tất cả. Chúng tôi thậm chí có thể gửi những email HTML đó bằng cách sử dụng php từ máy chủ cục bộ của chúng tôi

Tải xuống MÃ NGUỒN MIỄN PHÍ cho tập lệnh này để gửi email HTML bằng php. Tải xuống mã nguồn

Định cấu hình php để sử dụng SendMail

Trước tiên, bạn cần định cấu hình máy chủ php localhost của chúng tôi để sử dụng chương trình SendMail để xử lý việc xử lý email. Vì vậy, hãy mở php. ini trong trình soạn thảo văn bản yêu thích của bạn. Bạn thường có thể tìm thấy php. ini bên trong thư mục “ php ” trong thư mục máy chủ web của bạn (e. g. C. \xampp\php\php. ini). Cuộn qua php. ini tìm kiếm “chức năng thư”. Đây là vị trí của tất cả các thông tin cấu hình email.

php. ini là tệp cấu hình chính cho php. Nó chứa tất cả các cài đặt chung cho máy chủ php. Nói chung, hầu hết mọi người không bao giờ có nhu cầu chỉnh sửa tệp này hoặc thay đổi từ cấu hình mặc định. Có một vài trường hợp mà bạn có thể cần chỉnh sửa tệp như định cấu hình máy chủ email của mình, điều chỉnh giới hạn tải lên tệp hoặc một số điều khá hiếm gặp khác

Cập nhật “sendmail_path” thành vị trí đường dẫn chính xác cho chương trình xử lý email của bạn. Chương trình có thể tương ứng ở các vị trí được liệt kê bên dưới cho Windows và Linux, nhưng nó có thể khác

Cho cửa sổ

sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

cho Linux

sendmail_path = "/usr/lib/sendmail -t"

Bạn sẽ lưu ý rằng chúng là tùy chọn “-t” ở cuối đường dẫn. Tùy chọn này yêu cầu chương trình SendMail tìm trong tiêu đề của email để biết địa chỉ của người nhận email. Bạn có thể đọc thêm về nó ở đây nếu muốn, nhưng về cơ bản thì đó là cài đặt bắt buộc

Định cấu hình kết nối máy chủ SMTP

Tiếp theo, bạn sẽ cần định cấu hình SendMail để kết nối với máy chủ SMTP (còn gọi là máy chủ thư). Bạn có thể sử dụng cài đặt SMTP do máy chủ lưu trữ web của bạn cung cấp (nếu có) hoặc bạn có thể sử dụng cài đặt do nhà cung cấp dịch vụ email thông thường của bạn cung cấp (e. g. Gmail, Yahoo, Hotmail, v.v.). Đối với ví dụ này, tôi sẽ sử dụng cài đặt Gmail

Mở thư gửi. ini từ thư mục sendmail trên máy chủ web của bạn (e. g. C. \xampp\sendmail\sendmail. ini). Cập nhật các cài đặt sau với thông tin kết nối SMTP của riêng bạn

smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
[email protected]
auth_password=GMAIL_PASSWORD
error_logfile=error.log

Ghi chú. Bạn có thể cần cuộn xung quanh một chút để tìm tất cả các cài đặt vì tệp cấu hình mặc định thường có nhiều nhận xét trong đó để giúp bạn tìm hiểu xem từng cài đặt dùng để làm gì

Hãy xem cái này.   Thêm biểu tượng yêu thích vào Trang web của bạn. kích thước tốt nhất, định dạng tốt nhất

Ghi chú. Đảm bảo nhập chính xác tên người dùng và mật khẩu của bạn. Nếu một trong hai không chính xác, bạn sẽ không thể thực sự gửi bất kỳ email nào. Điều này sẽ khá phản tác dụng

Sau khi lưu cài đặt mới của bạn, hãy khởi động lại máy chủ web Apache. Điều này sẽ buộc máy chủ tải lại cấu hình SendMail mới

Gửi email cơ bản bằng php

Sử dụng hàm php mail(), chúng ta có thể bắt đầu mã hóa một email cơ bản để gửi. Tạo một tập lệnh php mới và mở nó để chỉnh sửa

Hàm mail() thường nhận tổng cộng 4 tham số, mỗi tham số chúng ta sẽ cho vào một biến riêng để dễ chỉnh sửa. e. g. mail($to, $subject, $message, $headers );

  • đến – địa chỉ email bạn đang gửi email đến (còn gọi là người nhận). Đây có thể là một địa chỉ email hoặc có thể là một danh sách các email, mỗi email được phân tách bằng dấu phẩy. (e. g. “[email được bảo vệ], [email được bảo vệ]”)
  • chủ đề – bạn đoán nó, dòng chủ đề của email
  • tin nhắn – nội dung của tin nhắn bạn đang gửi. Điều này cũng có thể bao gồm ngắt dòng, nhưng chỉ khi chúng được định dạng đúng là “\n” trong biến (điều này sẽ có ý nghĩa hơn trong ví dụ bên dưới)
  • tiêu đề - biến được định dạng đặc biệt này là thứ mà máy chủ email sẽ xem xét dưới dạng một số thông tin chọn lọc về email được gửi. Thông thường, nó sẽ chỉ bao gồm địa chỉ email “từ” (còn gọi là địa chỉ email gửi email)

Gửi email đơn giản với php

Chúng ta hãy xem mã cơ bản đang hoạt động để gửi email đầu tiên của chúng tôi

[email protected]\r\n";
	$to = "[email protected]";
	$subject = "Sending a basic email with php";
	$message = "Checkout this super simple script to send a basic text email!";

	if ( mail($to, $subject, $message, $headers) )
		echo 'Success!';
	else
		echo 'UNSUCCESSFUL...';

?>

Mã để chú ý đến

  • $headers – biến này có tiêu đề “From” được lưu trữ trong đó. Lưu ý cách "Từ" bắt đầu bằng chữ in hoa? . Nếu tiêu đề này không bắt đầu bằng chữ hoa, hàm mail() có thể không gửi được email hoặc người nhận có thể không bao giờ nhận được email
  • Bạn cũng sẽ nhận thấy “\r\n” trong tiêu đề. Chúng được gọi là ký tự thoát. Những cái cụ thể này giống như cú pháp định dạng đúng các tiêu đề để các giao thức email có thể diễn giải chính xác tất cả các dòng tiêu đề của email. Mã hóa là tất cả về cú pháp cụ thể
  • chức năng mail() – chức năng này được bao bọc bên trong câu lệnh if, điều này có nghĩa là trong mã của chúng tôi, chúng tôi có thể xác định xem chức năng có thành công khi chạy hay không. Trong ví dụ này, tôi chỉ đưa ra một văn bản đầu ra đơn giản. Bạn có thể dễ dàng thay đổi điều đó thành bất kỳ mã phức tạp nào mà bạn muốn thực thi khi gửi email thành công hay thất bại. Lựa chọn của bạn

Hãy xem cái này.   Đăng ký Khóa API YouTube

Đó là nó. Đó là tất cả mã bạn cần để gửi một email văn bản cơ bản đơn giản và nhanh chóng cho ai đó. Nhưng hãy xem một cách khác để gửi email phức tạp hơn một chút

Nhiều người nhận và dòng mới

[email protected]\r\n";

	$to = "[email protected], [email protected]";
	$subject = "Sending Emails From Localhost";
	$message = "Sending emails from a localhost home server?\n\nEven send custom multi line emails? Tell me more!";

	if ( mail($to, $subject, $message, $headers) )
		echo 'Success!';
	else
		echo 'UNSUCCESSFUL...';

?>

Đoạn mã cần chú ý và điểm khác biệt so với ví dụ trước

  • $to – lưu ý cách hai thư hiện có hai địa chỉ email được liệt kê trong đó, mỗi địa chỉ được phân tách bằng dấu phẩy. Bạn có thể có gần như bao nhiêu địa chỉ email tùy thích trong tham số $to, nhưng khi bạn nhận được ngày càng nhiều người nhận, mã tập lệnh email sẽ ngày càng mất nhiều thời gian hơn để thực thi (điều này có thể dẫn đến việc trang hết thời gian chờ và email không bao giờ đến
  • $message – biến thông báo này đã được tạo đặc biệt để có nhiều ngắt dòng (còn gọi là dòng mới) trong phần thân của email. Để nhận các ngắt dòng mới này trong một email văn bản đơn giản, chỉ cần thêm “\n” (đó là dấu gạch chéo lên trước ký tự n, không có khoảng cách giữa chúng). Bạn thậm chí có thể xếp chúng lại với nhau như tôi đã làm để cung cấp cho bạn thêm không gian

Khi bạn có nội dung email phức tạp hơn, thông báo có thể trở nên khá phức tạp. Đặc biệt nếu bạn đặc biệt về định dạng của mình. Những gì tôi muốn làm là biến từng dòng văn bản nội dung email mới thành một dòng mới trong mã php của tôi. Điều này làm cho mã sạch hơn một chút và dễ chỉnh sửa hơn trong tương lai. Như thế này

Khi bạn có nội dung email phức tạp hơn, thông báo có thể trở nên khá phức tạp. Đặc biệt nếu bạn đặc biệt về định dạng của mình. Những gì tôi muốn làm là biến từng dòng văn bản nội dung email mới thành một dòng mới trong mã php của tôi. Điều này làm cho mã sạch hơn một chút và dễ chỉnh sửa hơn trong tương lai. Như thế này

Hãy xem cái này.   Tạo biểu mẫu liên hệ tùy chỉnh cho trang web bằng PHP và HTML

Không thể gửi email và lỗi. tệp nhật ký

Cách chúng tôi thiết lập tập lệnh email của mình là cung cấp cho chúng tôi một thông báo thành công đơn giản nếu và khi chức năng email gửi email thành công. Điều đó thật tuyệt. Biết rằng email được gửi để viết ra bất kỳ chức năng nào khác mà bạn muốn php thực hiện là điều tuyệt vời. Nhưng còn khi email không gửi thì sao? . tệp nhật ký. Nếu bạn nhìn vào sendmail. ini mà chúng tôi đã định cấu hình trước đó, có tên tệp nhật ký lỗi được liệt kê. Nhật ký văn bản đơn giản này sẽ có bất kỳ thư nào được liên kết với tập lệnh email của bạn

Mỗi dòng sẽ cung cấp cho bạn một dấu ngày và giờ, theo sau là thông báo lỗi

19/05/20 21:42:52 : <[email protected]>: domain missing or malformed

Dưới đây là bảng phân tích ngắn về các thông báo lỗi khác nhau mà bạn có thể nhận được

  • “tên miền bị thiếu hoặc không đúng định dạng” – thông báo lỗi này có thể xuất hiện nếu tiêu đề của bạn không được định dạng đúng, chẳng hạn như thiếu “/r/n”. Vì vậy, hãy chắc chắn kiểm tra kỹ các tiêu đề của bạn xem có lỗi chính tả nào không
  • “Người nhận không hợp lệ [email được bảo vệ]” hoặc “Không tìm thấy người nhận hợp lệ nào” – điều này có thể là do nhập địa chỉ email không tồn tại. Là của người nhận hoặc người gửi. Vì vậy, hãy chắc chắn kiểm tra lại chính tả của bạn

Giờ đây, bạn có thể gửi email đơn giản từ máy chủ cục bộ, hãy tận hưởng việc gửi email đến nhiều người bằng kỹ năng tập lệnh php mới của bạn

Tải xuống MÃ NGUỒN MIỄN PHÍ cho tập lệnh này để gửi email HTML bằng php. Tải xuống mã nguồn

Bạn có thích nó không?

  • Nhấp để chia sẻ trên Twitter (Mở trong cửa sổ mới)
  • Bấm để chia sẻ trên Facebook (Opens in new window)
  • Nhấp để chia sẻ trên LinkedIn (Mở trong cửa sổ mới)
  • Nhấp để chia sẻ trên Reddit (Mở trong cửa sổ mới)
  • Nhấp để chia sẻ trên Tumblr (Mở trong cửa sổ mới)
  • Nhấp để chia sẻ trên Pinterest (Mở trong cửa sổ mới)
  • Nhấp để chia sẻ trên WhatsApp (Mở trong cửa sổ mới)
  • Nhấp để gửi email này cho bạn bè (Mở trong cửa sổ mới)

Như thế này

Thích Đang tải.

Hướng dẫn và bài viết liên quan

cửa sổ gửi thư linux

Sửa đổi lần cuối. Ngày 18 tháng 12 năm 2022

Làm cách nào để gửi email bằng PHP trong localhost?
Câu chuyện trước.
Công cụ đánh dấu cú pháp dễ dàng cho WordPress (Khối cú pháp mã)

Giới thiệu về Tác giả / Nick

Luôn yêu thích việc giảng dạy và giúp đỡ người khác, Nick đã tạo ra HeyTuts vào năm 2015. Bắt đầu sự nghiệp trên YouTube của mình bằng cách tạo các hướng dẫn lập trình dành cho nhà phát triển web, HeyTuts đã mở rộng sang nhiều danh mục liên quan đến công nghệ khác

Một câu trả lời cho “Gửi email HTML bằng php từ localhost với SendMail”

  1. Biểu mẫu liên hệ tùy chỉnh cho trang web bằng PHP, HTML và CSS - HeyTuts nói.

    […] đang lưu trữ trang web của bạn trên máy chủ web cục bộ hoặc chỉ sử dụng máy chủ web localhost, thì bạn có thể định cấu hình máy chủ đó để gửi email. Sử dụng ứng dụng SendMail và XAMPP, bạn có thể thiết lập máy chủ web localhost của mình để gửi […]

    Tôi có thể gửi email từ 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ố);

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

    Các bước gửi thư từ Localhost XAMPP bằng Gmail. .
    Mở thư mục cài đặt XAMPP
    Đi đến C. \xampp\php và mở php. .
    Tìm [chức năng thư] bằng cách nhấn ctrl + f
    Tìm kiếm và chuyển các giá trị sau. .
    Bây giờ, đi đến C. \xampp\sendmail và mở sendmail. .
    Tìm [sendmail] bằng cách nhấn ctrl + f

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

    Để gửi email từ máy chủ cục bộ, bạn cần làm theo các bước sau. .
    Tạo một thư mục có tên là sendmail trong C. \wamp\ hoặc C. \wamp64\
    Tải Sendmail về và giải nén trong thư mục sendmail
    Mở thư gửi. ini và thay đổi nó như sau. .
    Bật Quyền truy cập IMAP trong Cài đặt gmail của bạn -> Chuyển tiếp và POP/IMAP -> Truy cập IMAP