Đặt từ PHPMailer

PHPMailer là một thư viện gửi email rất phổ biến, được phát triển tích cực cho PHP. Và đó là mã nguồn mở

Để biết thêm thông tin về PHPMailer hoặc để đóng góp, hãy xem trang PHPMailer GitHub. Tìm kiếm một máy chủ lưu trữ chuyên dụng hàng đầu?

Dưới đây, chúng tôi sẽ cung cấp cho bạn một ví dụ nhanh chóng và dễ dàng về tập lệnh hoạt động mà bạn có thể sử dụng trong môi trường phát triển cục bộ hoặc trực tiếp trên máy chủ Lưu trữ InMotion của mình

Cài đặt các phụ thuộc PHPMailer

Bạn có thể hào hứng nhận mã này vào ứng dụng của mình, nhưng trước tiên, bạn cần đảm bảo rằng mình đã cài đặt thư viện mã cần thiết

Trong ví dụ này, chúng ta sẽ cài đặt PHPMailer với Composer, vì đó là phương pháp ưa thích của rất nhiều nhà phát triển PHP

composer require phpmailer/phpmailer

Đó là nó. Nếu bạn chưa có, nhà soạn nhạc sẽ tạo thư mục "nhà cung cấp" của bạn và điền vào tệp tự động tải của bạn

Thêm mã vào ứng dụng của bạn

Bây giờ là phần thú vị. Nhưng trước khi chạy mã này, hãy đảm bảo thay đổi một số văn bản mẫu mà chúng tôi đã sử dụng bên dưới bằng thông tin của riêng bạn

MẫuThay thế bằng[email được bảo vệ]Địa chỉ email người gửi của bạnthư. thí dụ. comTên máy chủ SMTP của bạn‘mật khẩu’Mật khẩu email người gửi[email được bảo vệ]Địa chỉ email người nhậnTên người gửiTên người gửi mong muốnTên người nhậnTên người nhận mong muốn

Khi bạn đã tắt văn bản mẫu, hãy nhớ chọn chế độ phát triển phù hợp. Mã này có thể được sử dụng trên máy chủ cục bộ của bạn hoặc môi trường sản xuất trực tiếp

Đối với phát triển cục bộ, hãy đặt biến
use PHPMailer\PHPMailer\PHPMailer;
0 thành
use PHPMailer\PHPMailer\PHPMailer;
1Đối với máy chủ trực tiếp, hãy thay đổi biến
use PHPMailer\PHPMailer\PHPMailer;
0 thành
use PHPMailer\PHPMailer\PHPMailer;
3

Chúng tôi đã sẵn sàng để bắt đầu



require "vendor/autoload.php";

$robo = '[email protected]';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;


$developmentMode = true;
$mailer = new PHPMailer($developmentMode);

try {
    $mailer->SMTPDebug = 2;
    $mailer->isSMTP();

    if ($developmentMode) {
    $mailer->SMTPOptions = [
        'ssl'=> [
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
        ]
    ];
    }


    $mailer->Host = 'mail.example.com';
    $mailer->SMTPAuth = true;
    $mailer->Username = '[email protected]';
    $mailer->Password = 'password';
    $mailer->SMTPSecure = 'tls';
    $mailer->Port = 587;

    $mailer->setFrom('[email protected]', 'Name of sender');
    $mailer->addAddress('[email protected]', 'Name of recipient');

    $mailer->isHTML(true);
    $mailer->Subject = 'PHPMailer Test';
    $mailer->Body = 'This is a SAMPLE email sent through PHPMailer';

    $mailer->send();
    $mailer->ClearAllRecipients();
    echo "MAIL HAS BEEN SENT SUCCESSFULLY";

} catch (Exception $e) {
    echo "EMAIL SENDING FAILED. INFO: " . $mailer->ErrorInfo;
}

Nguồn. Ghi chú PHP của tôi

Tốt lắm. Bạn đã hoàn thành hướng dẫn này. Bây giờ, nếu bạn đã điền tất cả dữ liệu chính xác, bạn sẽ có thể chạy tập lệnh này trong trình duyệt của mình và gửi thư đến người nhận

Bạn đã mua một miền và tạo tài khoản email đầu tiên của mình. Đã đến lúc gửi một số email, nhưng bạn không hoàn toàn chắc chắn về cách thực hiện việc đó

Nếu trang web hoặc ứng dụng web của bạn được xây dựng trên PHP, bạn có thể gửi email qua tính năng thư PHP. Điều này có thể hữu ích để tạo các biểu mẫu thư được tạo tùy chỉnh và gửi các email dựa trên văn bản đơn giản

Thông thường, có hai tùy chọn để gửi email bằng PHP – hàm PHP mail() sẵn có hoặc thư viện gửi thư như PHPMailer

Trong hướng dẫn này, chúng tôi sẽ đề cập đến sự khác biệt giữa hàm PHP mail() và PHPMailer và chỉ cho bạn cách gửi email bằng chúng

Đặt từ PHPMailer

  • Tại sao và khi nào sử dụng Thư PHP?
  • Cách sử dụng PHPMailer để gửi email
    • Cài đặt PHPMailer
    • Hiểu các thành phần PHPMailer
    • Sử dụng PHPMailer với Hostinger SMTP
    • Tạo biểu mẫu liên hệ PHPMailer
  • Cách gửi email bằng hàm PHP Mail()
    • Hiểu các thành phần thư PHP
    • Tạo tệp thử nghiệm cho thư PHP
    • Gửi thư HTML bằng PHP
  • Cách khắc phục các lỗi PHP Mail và PHPMailer phổ biến
    • Địa chỉ người gửi bị từ chối. Không thuộc sở hữu của người dùng
    • Gmail không thể xác minh tên miền đó. TLD đã gửi tin nhắn này
    • Thư Chuyển đến Thư mục Thư rác

Tại sao và khi nào sử dụng Thư PHP?

Chúng tôi khuyên bạn nên sử dụng gói gửi thư PHP bên ngoài nếu bạn muốn gửi nhiều email an toàn hơn. Hàm PHP mail() gốc không phù hợp với số lượng lớn email, vì nó mở và đóng kết nối ổ cắm Giao thức truyền thư đơn giản (SMTP) với mỗi email

Tạo dựng uy tín thương hiệu với dịch vụ lưu trữ email chuyên nghiệp. Nhận dịch vụ lưu trữ email

Có nhiều gói thư PHP để lựa chọn, bao gồm Pear Mail và Swift Mailer. Trong bài viết này, chúng tôi sẽ sử dụng PHPMailer

Trước khi bắt đầu, đây là tóm tắt nhanh về ưu và nhược điểm của hàm PHP mail() và PHPMailer

mail() ưu điểm

  • Đã được cài đặt sẵn và sẵn sàng sử dụng, tất cả những gì bạn cần là có PHP
  • Tương thích ngược để thay đổi phiên bản PHP sẽ không phá vỡ tập lệnh
  • Dễ dàng để tìm hiểu và sử dụng

mail() nhược điểm

  • Khó thiết lập với SMTP, điều này sẽ kích hoạt bộ lọc SPAM của người nhận
  • Không phù hợp để gửi một số lượng lớn email
  • Gửi email là một quá trình phức tạp. Do đó, chỉ sử dụng hàm mail() là không đủ. Do đó, các thư viện bên ngoài như PHPMailer được khuyến nghị thay thế

Ưu điểm của PHPMailer

  • Giới thiệu các cấu trúc email phức tạp, chẳng hạn như tài liệu HTML và tệp đính kèm
  • Hỗ trợ SMTP và xác thực được tích hợp qua SSL và TLS
  • Có thể được sử dụng để gửi số lượng lớn email trong thời gian ngắn

Nhược điểm của PHPMailer

  • Yêu cầu cài đặt
  • Phải mất một thời gian để làm quen và tìm hiểu logic

Cách sử dụng PHPMailer để gửi email

PHPMailer là thư viện gửi mail phổ biến hỗ trợ gửi qua hàm mail() hoặc qua SMTP server. Nó cấp quyền truy cập vào một tập hợp các chức năng để gửi email, đơn giản hóa quá trình định cấu hình thư PHP

Cài đặt PHPMailer

Việc cài đặt PHPMailer khá đơn giản, đặc biệt nếu bạn đã cài đặt Composer. Các gói lưu trữ đám mây và chia sẻ của chúng tôi bao gồm hai phiên bản của phần mềm này

Nếu bạn cần phiên bản Composer cũ hơn, hãy sử dụng lệnh composer. Mặt khác, nếu bạn cần một phiên bản mới hơn hoặc phiên bản PHP của bạn là 8+, hãy sử dụng lệnh composer2

Để cài đặt PHPMailer theo cách thủ công, hãy làm theo các bước sau

  1. Kết nối với tài khoản của bạn thông qua ứng dụng khách SSH
  2. Từ bảng điều khiển hPanel của bạn, đi tới Nâng cao → Truy cập SSH và lưu ý IP, cổng, tên người dùng và mật khẩu SSH trong chi tiết SSH
  3. Mở PuTTY và nhập thông tin SSH của bạn vào các trường Tên máy chủ (hoặc địa chỉ IP) và Cổng. Sau đó, nhấp vào Mở
  1. Khi một cửa sổ lệnh xuất hiện, hãy nhập tên người dùng và mật khẩu SSH của bạn và nhấn Enter. Hãy nhớ rằng PuTTY sẽ không hiển thị mật khẩu, vì vậy đừng ngạc nhiên nếu nó không xuất hiện trên màn hình
  2. Thực hiện lệnh sau để điều hướng đến thư mục public_html
cd public_html
  1. Sau đó, chạy lệnh sau
composer2 require phpmailer/phpmailer
  1. Đợi một lát cho đến khi quá trình cài đặt kết thúc. Đây là những gì nó sẽ trông giống như

Đặt từ PHPMailer

Hiểu các thành phần PHPMailer

Để hiểu cách thức hoạt động của PHPMailer, hãy xem lại từng thành phần tập lệnh ở trên

use PHPMailer\PHPMailer\PHPMailer;

Dòng trên nhập lớp PHPMailer vào không gian tên chung

require '../vendor/autoload.php';

Dòng này bao gồm các thư viện khác nhau mà PHPMailer cần

$mail = new PHPMailer;

Điều này tạo ra một đối tượng PHPMailer mới

 $mail->isSMTP();

Mã ở đây yêu cầu lớp PHPMailer sử dụng cấu hình SMTP tùy chỉnh được xác định trong tập lệnh thay vì máy chủ thư cục bộ

________số 8

Lệnh SMTPDebug cho phép bạn phát hiện nếu có sự cố xảy ra với kết nối SMTP

$mail->Host = 'smtp.hostinger.com';

Đây là nơi chỉ định địa chỉ máy chủ SMTP



require "vendor/autoload.php";

$robo = '[email protected]';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;


$developmentMode = true;
$mailer = new PHPMailer($developmentMode);

try {
    $mailer->SMTPDebug = 2;
    $mailer->isSMTP();

    if ($developmentMode) {
    $mailer->SMTPOptions = [
        'ssl'=> [
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
        ]
    ];
    }


    $mailer->Host = 'mail.example.com';
    $mailer->SMTPAuth = true;
    $mailer->Username = '[email protected]';
    $mailer->Password = 'password';
    $mailer->SMTPSecure = 'tls';
    $mailer->Port = 587;

    $mailer->setFrom('[email protected]', 'Name of sender');
    $mailer->addAddress('[email protected]', 'Name of recipient');

    $mailer->isHTML(true);
    $mailer->Subject = 'PHPMailer Test';
    $mailer->Body = 'This is a SAMPLE email sent through PHPMailer';

    $mailer->send();
    $mailer->ClearAllRecipients();
    echo "MAIL HAS BEEN SENT SUCCESSFULLY";

} catch (Exception $e) {
    echo "EMAIL SENDING FAILED. INFO: " . $mailer->ErrorInfo;
}
0

Đặt cổng SMTP tại đây



require "vendor/autoload.php";

$robo = '[email protected]';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;


$developmentMode = true;
$mailer = new PHPMailer($developmentMode);

try {
    $mailer->SMTPDebug = 2;
    $mailer->isSMTP();

    if ($developmentMode) {
    $mailer->SMTPOptions = [
        'ssl'=> [
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
        ]
    ];
    }


    $mailer->Host = 'mail.example.com';
    $mailer->SMTPAuth = true;
    $mailer->Username = '[email protected]';
    $mailer->Password = 'password';
    $mailer->SMTPSecure = 'tls';
    $mailer->Port = 587;

    $mailer->setFrom('[email protected]', 'Name of sender');
    $mailer->addAddress('[email protected]', 'Name of recipient');

    $mailer->isHTML(true);
    $mailer->Subject = 'PHPMailer Test';
    $mailer->Body = 'This is a SAMPLE email sent through PHPMailer';

    $mailer->send();
    $mailer->ClearAllRecipients();
    echo "MAIL HAS BEEN SENT SUCCESSFULLY";

} catch (Exception $e) {
    echo "EMAIL SENDING FAILED. INFO: " . $mailer->ErrorInfo;
}
1

Dòng này được sử dụng để bật xác thực SMTP

composer2 require phpmailer/phpmailer
0

Chỉ định địa chỉ email của bạn ở đây

composer2 require phpmailer/phpmailer
1

Tại đây, nhập mật khẩu email của bạn

composer2 require phpmailer/phpmailer
2

Đây là nơi bạn chèn địa chỉ email của người gửi

composer2 require phpmailer/phpmailer
3

Dòng này sẽ cho người nhận biết họ nên trả lời địa chỉ nào

composer2 require phpmailer/phpmailer
4

Chèn địa chỉ của người nhận vào đây

composer2 require phpmailer/phpmailer
5

Thêm dòng chủ đề của email tại đây

composer2 require phpmailer/phpmailer
6

Dòng này đọc nội dung thư HTML từ tệp bên ngoài. Hàm file_get_contents() sẽ tải nội dung từ tin nhắn. html, một tệp cục bộ nằm trong thư mục public_html và đưa nó vào thư

composer2 require phpmailer/phpmailer
7

Dòng này chứa nội dung thư

Mẹo chuyên nghiệp

Tránh "kiểm tra" và "kiểm tra" trong nội dung hoặc chủ đề email. Những điều khoản như vậy có thể khiến máy chủ thư của người nhận nghi ngờ bạn đang gửi thư rác và chặn email

composer2 require phpmailer/phpmailer
8

Nếu bạn muốn bao gồm tệp đính kèm, hãy bao gồm tên tệp và xóa dấu gạch chéo kép khỏi câu lệnh này

composer2 require phpmailer/phpmailer
9

Dòng này xác định điều gì sẽ xảy ra khi tập lệnh được thực thi

use PHPMailer\PHPMailer\PHPMailer;
0

Thao tác này sẽ hiển thị thông báo lỗi cùng với lời giải thích nếu tập lệnh không gửi được

use PHPMailer\PHPMailer\PHPMailer;
1

}else{ mở rộng câu lệnh if và mô tả điều gì sẽ xảy ra nếu điều kiện trước đó không được đáp ứng

use PHPMailer\PHPMailer\PHPMailer;
2

Giả sử email đã được gửi thành công, thông báo này sẽ xuất hiện

Mẹo chuyên nghiệp

SMTPDebug = 2; . Nhớ đổi thành SMTPDebug = 0;

Sử dụng PHPMailer với Hostinger SMTP

Sau khi cài đặt PHPMailer, cuối cùng bạn cũng có thể bắt đầu gửi email PHP

Trong phần này, chúng tôi sẽ hướng dẫn bạn cách gửi email thông qua máy chủ SMTP của Hostinger bằng PHPMailer

Mẹo chuyên nghiệp

Nếu bạn đang sử dụng Titan Mail, hãy sử dụng máy chủ SMTP của nó để thay thế

  1. Tạo tài khoản email bằng cách truy cập hPanel, sau đó vào Emails → Email Accounts → Create email account
  2. Điền địa chỉ email mới và đặt mật khẩu. Sau đó, nhấp vào Tạo. Hãy nhớ thông tin này vì bạn sẽ sử dụng nó để gửi thư qua PHPMailer
  3. Từ cùng một trang, đi tới Cài đặt cấu hình → Cấu hình thủ công và lưu ý Cổng SMTP và Tên máy chủ
  1. Truy cập bảng điều khiển hPanel và điều hướng đến Tệp → Trình quản lý tệp. Click vào thư mục public_html chọn Add New để tạo file mới. Đặt tên cho tệp phpmailer. php và nhấp vào Tạo
  2. Nhấp đúp vào phpmailer. php và sao chép và dán mã bên dưới. Sửa đổi nó cho phù hợp. Đảm bảo thay thế mymail@myawesomedomain. tld và người nhận@miền. tld với các miền hiện có và My$tr0ngPa55w0rd. với mật khẩu tài khoản email của bạn
use PHPMailer\PHPMailer\PHPMailer;
3
  1. Sau khi chỉnh sửa mã, nhấp vào Lưu & Đóng. Để thực thi tập lệnh, hãy nhập tên miền của bạn. tld/phpmailer. php trong trình duyệt web của bạn

Tạo biểu mẫu liên hệ PHPMailer

Ngoài việc sử dụng PHPMailer để gửi thư PHP đơn giản, người dùng cũng có thể sử dụng nó để tạo biểu mẫu liên hệ, cho phép khán giả liên hệ với họ

Tương tự như các tập lệnh PHP trước đây, việc tạo một tệp PHP mới trong thư mục public_html là điều cần thiết trước khi tiếp tục. Đặt tên cho nó. php

Sao chép và dán tập lệnh bên dưới vào tệp mới tạo và sửa đổi thông tin bên trong cho phù hợp

use PHPMailer\PHPMailer\PHPMailer;
4

Mẹo chuyên nghiệp

Lấy đầu vào của người dùng từ $_POST và sử dụng nó không được làm sạch sẽ không an toàn do các cuộc tấn công kịch bản chéo trang (XSS). Để tránh điều này, hãy xem các phương pháp hay nhất để khử trùng biến PHP

Lưu các thay đổi của bạn, sau đó chạy tập lệnh từ trình duyệt của bạn

Đây là kết quả sẽ như thế nào

Đặt từ PHPMailer

Nếu khách truy cập gửi tin nhắn qua biểu mẫu, họ sẽ nhận được thông báo xác nhận và nội dung của biểu mẫu sẽ đến hộp thư đến của địa chỉ email bạn đã nhập tại đây

composer2 require phpmailer/phpmailer
4

Mẹo chuyên nghiệp

Nếu biểu mẫu liên hệ PHPMailer không hoạt động, hãy thay đổi $mail->SMTPDebug = 0; . Đừng quên xóa dòng hoặc thay đổi 2 thành 0 sau đó

Để xem các ví dụ khác về cách sử dụng thư viện gửi email này, hãy truy cập kho lưu trữ chính thức của PHPMailer trên GitHub

Nếu bạn là người dùng WordPress, thay vào đó, bạn có thể sử dụng các plugin biểu mẫu liên hệ như Formidable Forms, Gravity Forms hoặc WPForms để tạo biểu mẫu liên hệ

Cách gửi email bằng hàm PHP Mail()

Một phương pháp khác để gửi email trực tiếp từ tập lệnh PHP là hàm mail() tích hợp sẵn. Để sử dụng tính năng gửi thư PHP, người dùng lưu trữ ứng dụng hoặc trang web PHP của họ trên máy chủ cục bộ sẽ cần định cấu hình chương trình Sendmail bằng cách thay đổi tệp php. ini trong thư mục cài đặt PHP của họ

Nếu bạn sử dụng máy chủ lưu trữ, Sendmail thường được cấu hình sẵn. Tuy nhiên, bạn phải đảm bảo rằng nhà cung cấp dịch vụ lưu trữ của bạn cho phép bạn quản lý tùy chọn dịch vụ Sendmail theo cách thủ công

Người dùng Hostinger có thể chuyển đổi chức năng này bằng cách truy cập hPanel và điều hướng đến Email → Mail Service Control

Đặt từ PHPMailer

Theo mặc định, dịch vụ Sendmail đã được bật sẵn. Tuy nhiên, hãy kiểm tra lại để chắc chắn

Quan trọng. Chức năng PHP Mail sẽ được bật mặc định nếu bạn sử dụng Titan Mail. Do đó, không thể bật hoặc tắt nó trong hPanel

Hiểu các thành phần thư PHP

Để giúp bạn hiểu hàm PHP mail(), chúng tôi sẽ xem xét các thành phần của tập lệnh PHP mà chúng tôi đã sử dụng trong phần trước

use PHPMailer\PHPMailer\PHPMailer;
6

Hai dòng đầu tiên ở trên cho phép báo lỗi để thông báo cho bạn nếu tập lệnh PHP không thực thi được

use PHPMailer\PHPMailer\PHPMailer;
7

Dòng này phải chứa địa chỉ email của người gửi. Hầu hết các nhà cung cấp dịch vụ lưu trữ cấm thêm địa chỉ email ngẫu nhiên vào đây, vì nó có thể được sử dụng để giả mạo. Vì vậy, tốt hơn hết bạn nên sử dụng tên miền của mình để thực thi thành công tập lệnh

use PHPMailer\PHPMailer\PHPMailer;
8

Địa chỉ email của người nhận ở đây. Để gửi thư cho nhiều người nhận, hãy phân tách các địa chỉ email bằng dấu phẩy

use PHPMailer\PHPMailer\PHPMailer;
9

Nhập dòng chủ đề cho email tại đây

require '../vendor/autoload.php';
0

Tại đây, hãy nhập nội dung email của bạn

require '../vendor/autoload.php';
1

Dòng này thường được sử dụng để thêm các tiêu đề bổ sung, chẳng hạn như Từ, Trả lời đến và Cc – các tiêu đề bổ sung này phải được phân tách bằng CRLF

require '../vendor/autoload.php';
2

Dòng này được sử dụng để thực thi chức năng và kiểm tra xem nó đã chạy thành công chưa

require '../vendor/autoload.php';
3

Thông báo trên sẽ xuất hiện khi tập lệnh được thực thi thành công

require '../vendor/autoload.php';
4

Ngoài ra, thông báo này sẽ được hiển thị nếu nó không thành công

Hãy nhớ rằng mặc dù các tiêu đề bổ sung là tùy chọn, nhưng điều cần thiết là phải đề cập đến tiêu đề Từ khi gửi thư. Nếu không, bạn sẽ nhận được thông báo như thế này

require '../vendor/autoload.php';
5

Để biết thêm thông tin về chức năng Sendmail và các tham số của nó, hãy tham khảo tài liệu PHP chính thức

Tạo tệp thử nghiệm cho thư PHP

Sau khi đảm bảo rằng Sendmail đang hoạt động, chúng ta phải tạo một tệp tập lệnh thư PHP và đặt nó vào thư mục public_html

Đây là cách thực hiện

  1. Từ hPanel, điều hướng đến Tệp → Trình quản lý tệp để truy cập Trình quản lý tệp của Hostinger
  2. Bấm đúp vào thư mục public_html và chọn biểu tượng Tệp mới ở trên cùng. Đặt tên cho tệp mới này là testmail. php, sau đó nhấn Tạo
  3. Nhấp đúp vào testmail. php để chỉnh sửa nó. Bạn có thể sử dụng mã PHP cơ bản bên dưới nhưng thay đổi các tham số cho phù hợp. Chúng tôi sẽ mô tả các thành phần tập lệnh chi tiết hơn trong tiểu mục sau
require '../vendor/autoload.php';
6
  1. Nhấp vào Lưu & Đóng sau khi hoàn tất
  2. Gửi email bằng cách truy cập yourdomain/testmail. php từ trình duyệt web của bạn. Nhớ đổi “yourdomain” thành tên miền dùng khi tạo testmail. php

Đặt từ PHPMailer

Gửi thư HTML bằng PHP

Hàm PHP mail() cũng có thể được sử dụng để gửi email có định dạng HTML. Định dạng này có khả năng tùy biến cao so với tin nhắn văn bản thuần túy

Quy trình gửi thư HTML cũng giống như vậy, nhưng lần này bạn cần gửi thư HTML và các tiêu đề tham số bổ sung

Dưới đây là một ví dụ về tập lệnh cơ bản để gửi email có định dạng HTML

require '../vendor/autoload.php';
7

Cách khắc phục các lỗi PHP Mail và PHPMailer phổ biến

Trong phần sau, chúng ta sẽ xem xét một số vấn đề phổ biến nhất có thể xảy ra khi sử dụng hàm PHP mail() hoặc PHPMailer và cách khắc phục chúng

Địa chỉ người gửi bị từ chối. Không thuộc sở hữu của người dùng

Lỗi này có nghĩa là máy chủ không thể xác thực người gửi bằng các chi tiết được cung cấp. Để khắc phục, hãy kiểm tra địa chỉ email bạn đã sử dụng để gửi thư và đảm bảo địa chỉ đó tương ứng với địa chỉ hiện có

Ngoài ra, hãy đảm bảo Khung chính sách người gửi (SPF) của bạn được bật. Nếu bạn sử dụng Hostinger, hãy kiểm tra bản ghi SPF của bạn bằng cách truy cập hPanel và điều hướng đến Email → Tài khoản email → Cài đặt DNS → Quản lý gửi email

Nếu bản ghi SPF được bật, nó sẽ được hiển thị là Đang hoạt động

Gmail không thể xác minh tên miền đó. TLD đã gửi tin nhắn này

Nếu bạn thấy cảnh báo này khi kiểm tra tập lệnh thư PHP, nguyên nhân có thể là do một trong các nguyên nhân sau

  • Không có bản ghi SPF trong Vùng DNS của miền. Nếu bản ghi bị thiếu hoặc bạn đang sử dụng máy chủ định danh bên ngoài, hãy thêm bản ghi SPF TXT mới theo cách thủ công qua hPanel hoặc cPanel
  • Bạn đã sử dụng chi tiết xác thực SMTP không hợp lệ. Đảm bảo sử dụng địa chỉ email tồn tại và thuộc về bạn

Thư Chuyển đến Thư mục Thư rác

Có nhiều lý do khiến thư PHP có thể kích hoạt bộ lọc thư rác. Một số ví dụ phổ biến nhất bao gồm

  • Chủ đề gây hiểu lầm hoặc giống như thư rác. Ví dụ bao gồm việc sử dụng các thuật ngữ như “thử nghiệm” hoặc “khẩn cấp. ” Đảm bảo đặt mục đích rõ ràng trong dòng Chủ đề
  • Địa chỉ người gửi không chính xác. Điều này có thể gọi các biện pháp bảo mật để lọc email của bạn nhằm ngăn chặn email giả mạo và lừa đảo
  • Sử dụng các từ kích hoạt thư rác. Điều này bao gồm các cụm từ như “ưu ​​đãi tuyệt vời” và “đây không phải là thư rác. ” Hãy thử thay đổi nội dung tin nhắn của bạn để xem đây có phải là sự cố không
  • Danh sách gửi thư của bạn không có liên kết hủy đăng ký. Đảm bảo bao gồm nút hủy đăng ký để ngăn chặn sự cố này và tạo niềm tin cho người đọc

Sự kết luận

Gửi email là một chiến lược tiếp thị cơ bản cho bất kỳ doanh nghiệp hoặc trang web nào. Hàm PHP mail() phù hợp để gửi một lượng nhỏ tin nhắn dựa trên văn bản đơn giản. Trong khi đó, PHPMailer là phương pháp tốt hơn và an toàn hơn để gửi email hàng loạt hoặc tạo biểu mẫu liên hệ

Để gửi email bằng tính năng thư PHP, hãy tạo một tệp PHP mới trong thư mục public_html và nhập hàm mail(). Sau đó, thực thi tập lệnh bằng trình duyệt web của bạn

Đối với việc gửi email bằng PHPMailer, bạn sẽ cần cài đặt một công cụ chuyên dụng, tạo một tài khoản email cho nó và bao gồm các giá trị từ cài đặt SMTP của bạn trong tập lệnh của PHPMailer. Tạo một tệp PHP mới trong thư mục public_html cũng rất cần thiết

Trong hướng dẫn này, chúng tôi đã giới thiệu quá trình cài đặt PHPMailer và tạo tập lệnh thử nghiệm cùng với biểu mẫu chức năng. Chúng tôi cũng đã đề cập đến quá trình gửi email bằng hàm PHP mail()

Chúng tôi hy vọng bạn thấy hướng dẫn này hữu ích. Nếu bạn có thêm bất kỳ câu hỏi nào, hãy để lại chúng trong phần bình luận

Đặt từ PHPMailer

Tác giả

Domantas G

Domantas dẫn dắt các nhóm nội dung và SEO về phía trước với những ý tưởng mới và phương pháp tiếp cận vượt trội. Được trang bị kiến ​​thức sâu rộng về SEO và tiếp thị, anh đặt mục tiêu quảng bá Hostinger đến mọi nơi trên thế giới. Trong thời gian rảnh rỗi, Domantas thích trau dồi kỹ năng phát triển web của mình và đi du lịch đến những nơi xa lạ

Thêm từ Domantas G

Đặt từ PHPMailer

Đồng tác giả

Ignas R

Ignas là Người viết nội dung kỹ thuật tại Hostinger. Sau khi giúp mọi người giải quyết ngay cả những vấn đề kỹ thuật phức tạp nhất với tư cách là Chuyên gia chăm sóc khách hàng thành công, mục tiêu hiện tại của anh ấy là viết những bài báo dễ theo dõi để những vấn đề này sẽ không xảy ra nữa. Trong thời gian rảnh rỗi, Ignas thích chơi trò chơi điện tử và sửa chữa mọi thứ xung quanh nhà của mình

Làm cách nào để đặt PHPMailer?

Trước khi tiếp tục, hãy đảm bảo cài đặt trình soạn nhạc. .
Mở Dấu nhắc lệnh và chuyển đến thư mục của dự án mà bạn muốn sử dụng PHPMailer
Chạy lệnh sau. nhà soạn nhạc yêu cầu phpmailer/phpmailer
Đợi quá trình cài đặt hoàn tất. Nó sẽ tải tất cả các lớp cần thiết vào thư mục dự án của bạn

Làm cách nào để thay đổi từ địa chỉ trong PHPMailer?

$mail->SetFrom('tên@miền của bạn. com', 'First Last'); Không cần sử dụng AddReplyTo() đây là thứ hoàn toàn khác. Bạn chỉ cần đặt địa chỉ từ (và tên tùy chọn) bằng cách sử dụng SetFrom().

Làm cách nào để gửi thư từ PHPMailer trong PHP?

php'; . com'; . com'); . com');

Sử dụng PHPMailer có an toàn không?

Nhưng SPEW có thể tệ hơn là gây khó chịu. nhờ có lỗ hổng bảo mật trong thành phần phần mềm web phổ biến có tên là PHPMailer, kẻ gian có thể sử dụng biểu mẫu “liên hệ với chúng tôi” để chiếm toàn bộ trang web của bạn . Tìm kiếm, phát hiện và phản hồi mối đe dọa 24/7 được cung cấp bởi một nhóm chuyên gia dưới dạng dịch vụ được quản lý hoàn toàn.