Gửi email có tệp đính kèm trong PHP w3schools

Gửi Email là một tính năng quan trọng của các ứng dụng web. Chức năng gửi email được sử dụng để gửi email thông báo cho người dùng. Nói chung, email được gửi với các chi tiết văn bản nhưng đôi khi chúng tôi cũng cần gửi email có tệp đính kèm

Vì vậy, bạn đang nghĩ đến việc triển khai gửi email có tệp đính kèm bằng PHP, thì bạn đang ở đúng nơi. Trong hướng dẫn này, bạn sẽ tìm hiểu cách triển khai Gửi email có tệp đính kèm khi gửi biểu mẫu trong PHP bằng thư viện PHPMailer

Chúng tôi sẽ giới thiệu hướng dẫn theo các bước đơn giản với ví dụ trực tiếp để tạo biểu mẫu Bootstrap với xác thực đầu vào và gửi email khi gửi biểu mẫu bằng PHP

Gửi email có tệp đính kèm trong PHP w3schools

Ngoài ra, đọc


  • Đăng nhập bằng Ghi nhớ bằng PHP & MySQL
  • Xây dựng hệ thống đăng nhập bằng OTP sử dụng PHP & MySQL
  • Tập lệnh đăng nhập và đăng ký với PHP và MySQL

Vì vậy, hãy bắt đầu triển khai gửi email có tệp đính kèm bằng PHP. Trước khi bắt đầu, hãy xem cấu trúc tệp cho ví dụ này

  • mục lục. php
  • Thẩm định. js
  • e-mail. php

Bước 1. Bao gồm jQuery, Bootstrap, Plugin xác thực Bootstrap và tệp CSS

Vì chúng tôi sẽ tạo Biểu mẫu HTML bằng Bootstrap, vì vậy trước tiên chúng tôi sẽ bao gồm Tệp Bootstrap và jQuery. Chúng tôi cũng sẽ bao gồm tệp plugin bootstrapValidator để triển khai xác thực đầu vào Biểu mẫu cũng như các tệp JavaScript và CSS khác

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.2/js/bootstrapValidator.min.js"></script>
<script src="js/validation.js"></script>
<link rel="stylesheet" href="css/style.css">

Bước 2. Tạo biểu mẫu HTML với trường nhập tệp

Chúng tôi sẽ tạo Biểu mẫu HTML bằng Bootstrap với các trường đầu vào trong chỉ mục. tập tin php

<form action="mail.php" method="post" id="emailForm" enctype="multipart/form-data">
	<div class="contact-form">
	<?php if(!empty($_GET['success']) && $_GET['success']) { ?>
		<div id="message" class="alert alert-danger alert-dismissible fade show">The message has been sent.</div>
	<?php } ?>
	<div class="form-group">				  
	  <label class="control-label col-sm-2" for="fname">Name*:</label>
	  <div class="col-sm-10">          
		<input type="text" class="form-control" id="uname" name="uname" placeholder="Enter Name" >
	  </div>
	</div>				
	<div class="form-group">
	  <label class="control-label col-sm-2" for="email">Email*:</label>
	  <div class="col-sm-10">
		<input type="email" class="form-control" id="email" name="email" placeholder="Enter email" >
	  </div>
	</div>
	<div class="form-group">
	  <label class="control-label col-sm-2" for="lname">Attach File:</label>
	  <div class="col-sm-10">          
		<input type="file" class="form-control" id="attachFile" name="attachFile">
	  </div>
	</div>
	<div class="form-group">
	  <label class="control-label col-sm-2" for="comment">Message*:</label>
	  <div class="col-sm-10">
		<textarea class="form-control" rows="5" name="message" id="message"></textarea>
	  </div>
	</div>
	<div class="form-group">        
	  <div class="col-sm-offset-2 col-sm-10">
		<button type="submit" class="btn btn-default" name="sendEmail">Send Email</button>
	  </div>
	</div>
	</div>
</form>

Bước 3. Triển khai xác thực đầu vào biểu mẫu

Đang xác thực. js, chúng tôi sẽ triển khai Xác thực đầu vào biểu mẫu bằng cách sử dụng plugin bootstrapValidator. Chúng tôi cũng sẽ xác thực trường nhập tệp để chỉ cho phép loại và kích thước tệp cụ thể đính kèm với email

$(document).ready(function() {
    $('#emailForm').bootstrapValidator({        
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            uname: {
                validators: {
                        stringLength: {
                        min: 2,
                    },
                        notEmpty: {
                        message: 'Please enter your name'
                    }
                }
            },             
            email: {
                validators: {
                    notEmpty: {
                        message: 'Please enter your email address'
                    },
                    emailAddress: {
                        message: 'Please enter a valid email address'
                    }
                }
            },
			attachFile: {
                validators: {
                    file: {
                        extension: 'jpeg,png,pdf,zip,gif,txt,doc',
                        type: 'image/jpeg,image/png,application/pdf,application/zip,image/gif,text/plain,application/msword',
                        maxSize: 2048 * 1024,
                        message: 'The selected file is not valid'
                    }
                }
            },
            message: {
                validators: {
                      stringLength: {
                        min: 10,
                        max: 200,
                        message:'Please enter at least 10 characters and no more than 200'
                    },
                    notEmpty: {
                        message: 'Please enter a message'
                    }
                }
            }
        }
    });
});

Bước 4. Triển khai Gửi Email có Tệp đính kèm với PHPMailer

Bây giờ cuối cùng trong thư. php, chúng tôi sẽ triển khai chức năng gửi email có tệp đính kèm bằng thư viện PHPMailer

Làm cách nào để gửi email có tệp đính kèm trong PHP?

Hàm PHP mail() với một số tiêu đề kiểu MIME có thể được sử dụng để gửi email có tệp đính kèm trong PHP . Trong mã ví dụ sau, các tiêu đề MIME và Content-Type được sử dụng với hàm mail() để gửi email có tệp đính kèm bằng PHP. $to – Địa chỉ email người nhận. $from – Địa chỉ email người gửi.

Làm cách nào để đính kèm và gửi tệp trong email bằng biểu mẫu PHP?

Gửi email kèm theo tệp đính kèm khi gửi biểu mẫu .
Nhận dữ liệu biểu mẫu đã gửi bằng cách sử dụng $_POST trong PHP
Xác thực dữ liệu biểu mẫu để kiểm tra xem các trường bắt buộc có trống không
Xác thực địa chỉ email bằng FILTER_VALIDATE_EMAIL trong PHP
Kiểm tra phần mở rộng tệp để cho phép các định dạng tệp nhất định (tệp PDF, Hình ảnh và MS Word)

Làm cách nào để tạo biểu mẫu email dựa trên PHP với tệp đính kèm?

Kiểm tra và xác thực phần mở rộng tệp để cho phép các định dạng tệp nhất định (tệp PDF, Hình ảnh và MS Word). Tải tệp lên máy chủ bằng hàm PHP move_uploaded_file(). Thêm dữ liệu biểu mẫu và tệp đã tải lên vào nội dung email. Gửi email đến người nhận được chỉ định với tệp đính kèm bằng hàm PHP mail()

Làm cách nào để thêm tệp đính kèm trong PHPMailer?

Tệp đính kèm . Dòng đơn này sẽ thêm tệp đính kèm vào thư của bạn. $path là đường dẫn của tên tệp. Nó có thể là một tệp tương đối (từ tập lệnh của bạn, không phải lớp PHPMailer) hoặc đường dẫn đầy đủ đến tệp bạn muốn đính kèm. mail->Send(); and it's called AddAttachment($path); . This single line will add the attachment to your mail. $path is the path of the filename. It can be a relative one (from your script, not the PHPMailer class) or a full path to the file you want to attach.