HomeLập trìnhPhpCố gắng hiểu...

Cố gắng hiểu hàm php mail() và thư viện phpMailer


Xin lỗi, tôi biết điều này là cơ bản, nhưng tôi gặp một chút khó khăn trong việc hiểu toàn bộ hoạt động của email.

Giả sử tôi có trang đặt hàng ngay trên trang web của mình. Tôi có một biểu mẫu PHP đang hoạt động, nơi một người có thể chọn sản phẩm họ muốn, nhập thông tin liên hệ của họ và nhấn gửi. Tôi nhận được email tốt với hàm php mail(). Điều tôi cần biết là làm cách nào để gửi lại một bản sao của email cho người đã đặt hàng?

Chức năng mail() không thể hoạt động nếu khách hàng có tài khoản gmail. Và tôi cần khách hàng nhận được một bản sao của email bất kể họ đang sử dụng máy chủ email nào…

Tôi đã tra cứu nó và tất cả những gì tôi có thể nghĩ ra là thư viện php Mailer nơi có thể gửi TỪ Gmail. Nhưng đó không phải là vấn đề của tôi – tôi đã mua một miền email và tôi không gặp khó khăn gì khi gửi email từ máy chủ lưu trữ web của mình.

Tôi không phiền nếu bạn cần một số ngôn ngữ hoặc thư viện khác để thực hiện việc này, miễn là tôi có thể tự động nhận được email xác nhận được gửi tới khách hàng.

Không có hướng dẫn hay bất cứ thứ gì trên web với các từ khóa tôi đang sử dụng, vì vậy tôi đang gặp một chút bế tắc ngay bây giờ…

Đọc thêm  Làm cách nào tôi có thể kết nối php với SQL Server?

Trang web thử nghiệm của tôi hiện đang hoạt động tại www.unidrones.co.za/ChoiceGelatin/order.php nếu bạn cần xem qua. Tôi nhận được email tốt, nhưng tôi hoàn toàn không biết làm cách nào để gửi lại email cho khách hàng :nhíu mày:

Một câu hỏi khác cùng chủ đề, làm thế nào để các trang web gửi email quảng cáo đẹp như vậy? Theo những gì tôi nghe được, bạn phải định kiểu email bằng CSS nội tuyến…Đây có phải là điều mà mọi trang web đều làm hay tôi đã bỏ lỡ điều gì đó?

Cảm ơn các bạn trước rất nhiều, tôi biết đây là một câu hỏi quá cơ bản nhưng đơn giản là tôi không thể tự mình tìm ra câu trả lời :sob:


Câu trả lời cho Câu hỏi đầu tiên của bạn (Trình gửi thư PHP)

$mail = new PHPMailer(true);                              // Passing `true` enables exceptions
try {
    //Server settings
    $mail->SMTPDebug = 2;                                 // Enable verbose debug output
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host="smtp1.example.com;smtp2.example.com";  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username="[email protected]";                 // SMTP username
    $mail->Password = 'secret';                           // SMTP password
    $mail->SMTPSecure="tls";                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                                    // TCP port to connect to

    //Recipients
    $mail->setFrom('[email protected]', 'Mailer');
    $mail->addAddress('[email protected]', 'Joe User');     // Add a recipient
    $mail->addAddress('[email protected]');               // Name is optional
    $mail->addReplyTo('[email protected]', 'Information');
    $mail->addCC('[email protected]');
    $mail->addBCC('[email protected]');

    //Attachments
    $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name

    //Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject="Here is the subject";
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}

Mã trên là mã demo chính thức từ repo. Nó được bình luận tốt và dễ làm theo. Hãy thử đọc nó và cho tôi biết nếu bạn vẫn gặp khó khăn và có câu hỏi về nó.

Đọc thêm  Thực thi lời hứa trước khi tải tệp json php và nhận 500 lỗi máy chủ nội bộ

Câu trả lời cho Câu hỏi thứ hai của bạn (Email quảng cáo đẹp)

Có, tất cả những email đó phải được tạo kiểu bằng css nội tuyến vì chúng tôi không thể đính kèm bất kỳ tệp css nào vào đó.

Điều phổ biến nhất mà ngày nay các công ty làm là họ mua các dịch vụ như Mailchimp để thực hiện các chiến dịch quảng cáo này dễ dàng hơn.



1 lượt thích

Cảm ơn bạn đã phản hồi :slight_smile:
Tôi đang dùng thử ngay bây giờ và sẽ cho bạn biết khi tôi đạt đến giai đoạn tiếp theo

Được rồi, đây là lần đầu tiên tôi dùng thử phpMailer… Và có một số lỗi. Đầu tiên, tôi đã tải xuống một số tệp, một tệp có tên class.phpmailer.php, nhưng không tệp nào có tệp phpMailerAutoload.php… Vì vậy, tôi phải sao chép, dán nội dung của một trong các tệp trực tuyến và tạo tệp đó trên PC của mình. Đây là mã của tôi, và đúng như tôi đoán, nó không hoạt động… Tôi cảm thấy như mình đang thiếu một thứ gì đó quan trọng. Tôi cần làm gì để nó hoạt động?

<?php

require('phpMailerAutoload.php');

 // $mail = new PHPMailer;
    $mail = new PHPMailer(true); 

    $name = $_POST['name'];
    $msg = $_POST['msg'];

  //Creating the email body to be sent
  $email_body = "";
  $email_body .= "Name: " . $name . "\n";
  $email_body .= "Email: " . $msg . "\n";

try {
    //Server settings
    $mail->SMTPDebug = 2;                                 // Enable verbose debug output
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host="unidrones.co.za;www.unidrones.co.za";  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username="[email protected]";                 // SMTP username
    $mail->Password = ''; //'secret';                           // SMTP password
    $mail->SMTPSecure="tls";                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 465; //587;                                    // TCP port to connect to

    //Recipients
    $mail->setFrom('[email protected]', 'Mailer');
    $mail->addAddress('[email protected]', 'Joe User');     // Add a recipient
    $mail->addAddress('[email protected]');               // Name is optional
    $mail->addReplyTo('[email protected]', 'Information');
    $mail->addCC('[email protected]');
    $mail->addBCC('[email protected]');

    //Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject="Here is the subject";
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status