Tập lệnh kiểm tra PHP SMTP

từ chối trách nhiệm. Thông tin trên trang này được cung cấp "nguyên trạng" mà không có bất kỳ hình thức bảo hành nào. Ngoài ra, Arclab Software OHG không đảm bảo, bảo đảm hoặc đưa ra bất kỳ tuyên bố nào về việc sử dụng hoặc kết quả sử dụng về tính đúng đắn, độ chính xác, độ tin cậy, tính cập nhật hoặc các khía cạnh khác. Thấy. Thỏa thuận cấp phép

Mã có thể được sử dụng trực tiếp bằng dòng lệnh hoặc thông qua trình duyệt web của bạn với đầu ra gỡ lỗi được bật để bạn có thể thấy bất kỳ thông báo lỗi tiềm ẩn nào

Ngoài ra, ví dụ này sử dụng kết nối SSL an toàn

Cài đặt PHPMailer dễ dàng nhất IMHO là chỉ cần tải xuống ba tệp PHPMailer thô từ 'tại đây', [Ngoại lệ. php, PHPMailer. php &  SMTP. php]. Sau đó sử dụng mã dưới đây

Lưu ý rằng các tệp php phải nằm trong thư mục có thể đọc được trên web nếu bạn muốn xem thông báo gỡ lỗi trong trình duyệt web của mình

Nếu máy chủ SMTP không sử dụng mã hóa TLS, hãy thử cách này thay thế

$mail->SMTPSecure = PHPMailer. ENCRYPTION_SMTPS;

SMTPOptions là tùy chọn và không an toàn nhưng có thể được sử dụng như một cách khắc phục nhanh nếu không thể xác minh chứng chỉ SSL do có thông báo lỗi

Tôi biết đây là một câu hỏi cũ nhưng nó vẫn hoạt động và tất cả các câu trả lời tôi thấy đều cho thấy tính năng xác thực cơ bản, tính năng này không được dùng nữa. Dưới đây là một ví dụ cho thấy cách gửi qua máy chủ Gmail của Google bằng PHPMailer với xác thực XOAUTH2

//Import PHPMailer classes into the global namespace
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\OAuth;
//Alias the League Google OAuth2 provider class
use League\OAuth2\Client\Provider\Google;

//SMTP needs accurate times, and the PHP time zone MUST be set
//This should be done in your php.ini, but this is how to do it if you don't have access to that
date_default_timezone_set['Etc/UTC'];

//Load dependencies from composer
//If this causes an error, run 'composer install'
require '../vendor/autoload.php';

//Create a new PHPMailer instance
$mail = new PHPMailer[];

//Tell PHPMailer to use SMTP
$mail->isSMTP[];

//Enable SMTP debugging
//SMTP::DEBUG_OFF = off [for production use]
//SMTP::DEBUG_CLIENT = client messages
//SMTP::DEBUG_SERVER = client and server messages
$mail->SMTPDebug = SMTP::DEBUG_SERVER;

//Set the hostname of the mail server
$mail->Host = 'smtp.gmail.com';

//Set the SMTP port number:
// - 465 for SMTP with implicit TLS, a.k.a. RFC8314 SMTPS or
// - 587 for SMTP+STARTTLS
$mail->Port = 465;

//Set the encryption mechanism to use:
// - SMTPS [implicit TLS on port 465] or
// - STARTTLS [explicit TLS on port 587]
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;

//Whether to use SMTP authentication
$mail->SMTPAuth = true;

//Set AuthType to use XOAUTH2
$mail->AuthType = 'XOAUTH2';

//Fill in authentication details here
//Either the gmail account owner, or the user that gave consent
$email = 'someone@gmail.com';
$clientId = 'RANDOMCHARS-----duv1n2.apps.googleusercontent.com';
$clientSecret = 'RANDOMCHARS-----lGyjPcRtvP';

//Obtained by configuring and running get_oauth_token.php
//after setting up an app in Google Developer Console.
$refreshToken = 'RANDOMCHARS-----DWxgOvPT003r-yFUV49TQYag7_Aod7y0';

//Create a new OAuth2 provider instance
$provider = new Google[
    [
        'clientId' => $clientId,
        'clientSecret' => $clientSecret,
    ]
];

//Pass the OAuth provider instance to PHPMailer
$mail->setOAuth[
    new OAuth[
        [
            'provider' => $provider,
            'clientId' => $clientId,
            'clientSecret' => $clientSecret,
            'refreshToken' => $refreshToken,
            'userName' => $email,
        ]
    ]
];

//Set who the message is to be sent from
//For gmail, this generally needs to be the same as the user you logged in as
$mail->setFrom[$email, 'First Last'];

//Set who the message is to be sent to
$mail->addAddress['someone@gmail.com', 'John Doe'];

//Set the subject line
$mail->Subject = 'PHPMailer GMail XOAUTH2 SMTP test';

//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->CharSet = PHPMailer::CHARSET_UTF8;
$mail->msgHTML[file_get_contents['contentsutf8.html'], __DIR__];

//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';

//Attach an image file
$mail->addAttachment['images/phpmailer_mini.png'];

//send the message, check for errors
if [!$mail->send[]] {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message sent!';
}

Thẩm quyền giải quyết. Thư mục ví dụ PHPMailer

Chủ Đề