Đôi khi bạn muốn gửi thư có tệp đính kèm nhưng quá trình đó rất khó khăn và không có gì chắc chắn về việc gửi thư của bạn có tệp đính kèm nhưng giờ đây, quá trình này trở nên dễ dàng và là cách tốt nhất để gửi email có tệp đính kèm với sự trợ giúp của PHP và PHP
Vì vậy, trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách gửi thư có tệp đính kèm bằng php. Chắc bạn cũng thích Gửi Email Bằng SMTP Và PHP Mailer
Tham gia với hơn 27.000 thành viên trong nhóm Google của bạn và nhận các hướng dẫn mới nhất
Nhận các hướng dẫn mới nhất của chúng tôi, Hướng dẫn cách thực hiện về phát triển web mỗi ngày ngay trong hộp thư đến của bạn
Để gửi thư có tệp đính kèm chỉ cần hai bước. -
- Tạo tệp HTML và xác định đánh dấu để gửi dữ liệu thư
- Tạo một file PHP để lấy dữ liệu và gửi mail
Bước 1. Tạo tệp HTML và xác định đánh dấu để gửi dữ liệu thư
Chúng tôi tạo một tệp HTML và lưu nó với tên mail. html
Enter Your Name :
Enter Your Email :
Enter Recipient Email :
Enter Email Subject :
Enter Message :
Select File :
Trong bước này, chúng tôi tạo một biểu mẫu và thêm một số trường văn bản cần thiết để gửi thư và thêm trường tệp để tải lên tệp đính kèm cho thư, sau đó gửi tất cả dữ liệu tới send_mail. php mà chúng ta sẽ tạo trong bước tiếp theo
Bạn cũng có thể thích Gửi Email Đẹp Bằng PHP
Bước 2. Tạo một file PHP để lấy dữ liệu và gửi mail
Chúng tôi tạo một tệp PHP và lưu nó với tên send_mail. php
From = $sender_email; $send_mail->FromName = $name; $send_mail->Subject = $subject; $send_mail->Body = $message; $send_mail->AddAddress[$send_to]; $attach_file = $folder."".$file_name; $send_mail->AddAttachment[$attach_file]; return $send_mail->Send[]; } ?>
Ở bước này chúng ta lấy toàn bộ dữ liệu cần thiết để gửi mail rồi upload file lên thư mục
Chúng tôi bao gồm lớp. phpmailer. php cần thiết để gửi thư, sau đó chúng tôi thêm các chi tiết trong thư và đính kèm tệp và gửi thư đến địa chỉ email của người nhận
Chắc bạn cũng thích Hệ Thống Xác Minh Tài Khoản Qua Email Sử Dụng PHP
Đó là tất cả, đây là cách gửi thư có tệp đính kèm bằng PHP. Bạn có thể tùy chỉnh thêm mã này theo yêu cầu của bạn. Và xin vui lòng cho nhận xét về hướng dẫn này
I migrated an application to a platform without a local transport agent [MTA]. I did not want to configure an MTA, so I wrote this xxmail function to replace mail[] with calls to a remote SMTP server. Hopefully it is of some use.
function xxmail[$to, $subject, $body, $headers]
{
$smtp = stream_socket_client['tcp://smtp.yourmail.com:25', $eno, $estr, 30];
$B = 8192;
$c = "\r\n";
$s = 'myapp@someserver.com';
________số 8_______
// Envelope
fwrite[$smtp, 'mail from: ' . $s . $c];
$junk = fgets[$smtp, $B];
fwrite[$smtp, 'rcpt to: ' . $to . $c];
$junk = fgets[$smtp, $B];
fwrite[$smtp, 'data' . $c];
$junk = fgets[$smtp, $B];
// Header
fwrite[$smtp, 'To: ' . $to . $c];
if[strlen[$subject]] fwrite[$smtp, 'Subject: ' . $subject . $c];
if[strlen[$headers]] fwrite[$smtp, $headers]; // Must be \r\n [delimited]
fwrite[$smtp, $headers . $c];
// Body
if[strlen[$body]] fwrite[$smtp, $body . $c];
fwrite[$smtp, $c . '.' . $c];
$junk = fgets[$smtp, $B];
// Close
fwrite[$smtp, 'quit' . $c];
$junk = fgets[$smtp, $B];
fclose[$smtp];
}
Định cấu hình cài đặt SMTP trên máy chủ cục bộ của bạn Giả sử bạn đang sử dụng xampp trên windows, hãy tìm tệp “php. ini” trong thư mục “C. \xampp\php”
- Mở nó bằng notepad hoặc bất kỳ trình soạn thảo văn bản nào. Chúng tôi sẽ sử dụng notepad trong ví dụ này. Nhấp vào menu chỉnh sửa
- Nhấp vào menu Tìm…
- Menu hộp thoại tìm sẽ xuất hiện
- Nhấp vào nút Tìm tiếp theo
- Xác định vị trí các mục
- [chức năng thư]
- ; . Không xóa nửa cột nếu bạn muốn làm việc với Máy chủ SMTP như Mercury
- ;
- ;
- Xóa dấu chấm phẩy trước SMTP và smtp_port và đặt SMTP thành máy chủ smtp của bạn và cổng thành cổng smtp của bạn. Cài đặt của bạn sẽ trông như sau
- SMTP = smtp. thí dụ. com
- smtp_port = 25
- Lưu ý cài đặt SMTP có thể được nhận từ nhà cung cấp dịch vụ lưu trữ web của bạn
- Nếu máy chủ yêu cầu xác thực thì thêm các dòng sau
- auth_username = example_username@example. com
- auth_password = ví dụ_mật khẩu
- Lưu các thay đổi mới
- Khởi động lại máy chủ Apache
Ví dụ thư PHP
Bây giờ chúng ta hãy xem một ví dụ gửi một thư đơn giản
đầu ra
Ghi chú. ví dụ trên chỉ lấy 4 tham số bắt buộc
Bạn nên thay thế địa chỉ email hư cấu ở trên bằng một địa chỉ email thực
Vệ sinh đầu vào của người dùng email
Ví dụ trên sử dụng các giá trị được mã hóa cứng trong mã nguồn cho địa chỉ email và các chi tiết khác để đơn giản hóa
Giả sử bạn phải tạo biểu mẫu liên hệ với chúng tôi để người dùng điền thông tin chi tiết rồi gửi
- Người dùng có thể vô tình hoặc cố ý chèn mã vào các tiêu đề có thể dẫn đến việc gửi thư rác
- Để bảo vệ hệ thống của bạn khỏi các cuộc tấn công như vậy, bạn có thể tạo một chức năng tùy chỉnh để khử trùng và xác thực các giá trị trước khi gửi thư
Hãy tạo một hàm tùy chỉnh để xác thực và làm sạch địa chỉ email bằng cách sử dụng hàm tích hợp filter_var
Hàm filter_var Hàm filter_var được sử dụng để khử trùng và xác thực dữ liệu đầu vào của người dùng
Nó có cú pháp cơ bản sau
NƠI ĐÂY,
- “filter_var[…]” là chức năng xác thực và khử trùng
- “$field” là giá trị của trường cần lọc
- “LOẠI VỆ SINH” là loại vệ sinh được thực hiện trên sân như;
- FILTER_VALIDATE_EMAIL – nó trả về true cho các địa chỉ email hợp lệ và false cho các địa chỉ email không hợp lệ
- FILTER_SANITIZE_EMAIL – nó xóa các ký tự không hợp lệ khỏi địa chỉ email. thông tin\@miền. [com] trả về info@domain. com
- FILTER_SANITIZE_URL – nó xóa các ký tự không hợp lệ khỏi URL. http. //www. thí dụ@. đến trở lại >http. //www. thí dụ@. com
- FILTER_SANITIZE_STRING – it removes tags from string values. am bold becomes am bold.
Mã bên dưới triển khai sử dụng chức năng tùy chỉnh để gửi thư an toàn
đầu ra
thư an toàn
Email có thể bị chặn trong quá trình truyền bởi người nhận ngoài ý muốn
Điều này có thể làm lộ nội dung của email cho những người nhận ngoài ý muốn
Thư an toàn giải quyết vấn đề này bằng cách truyền email qua Bảo mật Giao thức Truyền Siêu văn bản [HTTPS]