در این آموزش ، نحوه ارسال ایمیل از localhost با استفاده از PHP و Gmail را یاد خواهیم گرفت. در برنامه وب PHP ، از تابع mail () برای ارسال نامه استفاده می شود. اما عملکرد mail () در محیط localhost کار نمی کند. در این آموزش ، ما از سیستم localhost با استفاده از PHP و Gmail ایمیل ارسال خواهیم کرد.

در این آموزش ، ما استفاده خواهیم کرد PHPmailer برای ارسال ایمیل از localhost با استفاده از PHP. کتابخانه PHPmailer راهی را برای ارسال ایمیل از localhost با سرور SMTP با استفاده از PHP فراهم می کند. ما برای ارسال ایمیل از localhost از حساب Gmail به عنوان سرور SMTP استفاده خواهیم کرد. قبل از استفاده از سرور Gmail SMTP باید تنظیمات را در حساب Gmail خود پیکربندی کنیم.

  • وارد حساب گوگل خود شوید.
  • به صفحه امنیت بروید.
  • به پایین بروید دسترسی به برنامه کم امنیت بخش. روشن کن دسترسی به برنامه کم امنیت.

کد ارسال ایمیل از localhost

<?php
use PHPMailerPHPMailerPHPMailer; 
use PHPMailerPHPMailerException; 
  
require 'vendor/autoload.php';

$mail = new PHPMailer;
if(isset($_POST['send'])){
// getting post values
$fname=$_POST['fname'];		
$toemail=$_POST['toemail'];	
$subject=$_POST['subject'];	
$message=$_POST['message'];
$mail->isSMTP();                            // Set mailer to use SMTP
$mail->Host="smtp.gmail.com";             // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                     // Enable SMTP authentication
$mail->Username="yourgmailid@gmail.com";          // SMTP username
$mail->Password = 'Your_Gmail_Password'; // SMTP password
$mail->SMTPSecure="tls";                  // Enable TLS encryption, `ssl` also accepted

$mail->Port = 587;                          // TCP port to connect to
$mail->setFrom('yourgmailid@gmail.com', 'Your_Name');
$mail->addReplyTo('yourgmailid@gmail.com', 'Your_Name');
$mail->addAddress($toemail);   // Add a recipient
// $mail->addCC('cc@example.com'); // Set CC Email here
// $mail->addBCC('bcc@example.com'); // Set BCC Email here

$mail->isHTML(true);  // Set email format to HTML

$bodyContent=$message;

$mail->Subject =$subject;
$bodyContent="Dear".$fname;
$bodyContent .='<p>'.$message.'</p>';
$mail->Body = $bodyContent;

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}
}
?>

توضیح کد بالا

  • کتابخانه PHPMailer را وارد کنید و نمونه ای از این کلاس ایجاد کنید.
  • اطلاعات کاربری SMTP (میزبان ، نام کاربری ، گذرواژه و پورت) را تنظیم کنید.
  • نام و ایمیل فرستنده را مشخص کنید ($mail->setFrom('yourgmailid@gmail.com', 'Your_Name'))
  • تنظیم آدرس ایمیل گیرنده ($mail->addAddress($toemail))
  • تنظیم موضوع ایمیل ($mail->Subject)
  • محتوای متن ایمیل را تنظیم کنید ($mail->Subject =$subject;)
  • استفاده از mail->send() روش کلاس PHPMailer برای ارسال ایمیل.

این کد کامل با فرم HTML و کد PHP است

<?php
use PHPMailerPHPMailerPHPMailer; 
use PHPMailerPHPMailerException; 
  
require 'vendor/autoload.php';

$mail = new PHPMailer;
if(isset($_POST['send'])){
// getting post values
$fname=$_POST['fname'];		
$toemail=$_POST['toemail'];	
$subject=$_POST['subject'];	
$message=$_POST['message'];
$mail->isSMTP();                            // Set mailer to use SMTP
$mail->Host="smtp.gmail.com";             // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                     // Enable SMTP authentication
$mail->Username="yourgmailid@gmail.com";          // SMTP username
$mail->Password = 'Your_Gmail_Password'; // SMTP password
$mail->SMTPSecure="tls";                  // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                          // TCP port to connect to
$mail->setFrom('yourgmailid@gmail.com', 'Your_Name');
$mail->addReplyTo('yourgmailid@gmail.com', 'Your_Name');
$mail->addAddress($toemail);   // Add a recipient
// $mail->addCC('cc@example.com');
// $mail->addBCC('bcc@example.com');
$mail->isHTML(true);  // Set email format to HTML
$bodyContent=$message;
$mail->Subject =$subject;
$bodyContent="Dear".$fname;
$bodyContent .='<p>'.$message.'</p>';
$mail->Body = $bodyContent;

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>How to send email from localhost using PHP</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto|Courgette|Pacifico:400,700">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
<style>    
body {
    color: #000;
    background: #fcda2e;
    font-family: "Roboto", sans-serif;
}
.contact-form {
    padding: 50px;
    margin: 30px auto;
}	
.contact-form h1 {
    font-size: 42px;
    font-family: 'Pacifico', sans-serif;
    margin: 0 0 50px;
    text-align: center;
}
.contact-form .form-group {
    margin-bottom: 20px;
}
.contact-form .form-control, .contact-form .btn {
    min-height: 40px;
    border-radius: 2px;
}
.contact-form .form-control {
    border-color: #e2c705;
}
.contact-form .form-control:focus {
    border-color: #d8b012;
    box-shadow: 0 0 8px #dcae10;
}
.contact-form .btn-primary, .contact-form .btn-primary:active {
    min-width: 250px;
    color: #fcda2e;
    background: #000 !important;
    margin-top: 20px;
    border: none;
}
.contact-form .btn-primary:hover {
    color: #fff; 
}
.contact-form .btn-primary i {
    margin-right: 5px;
}
.contact-form label {
    opacity: 0.9;
}
.contact-form textarea {
    resize: vertical;
}
.bs-example {
    margin: 20px;
}
</style>
</head>
<body>
<div class="container-lg">
	<div class="row">
		<div class="col-md-8 mx-auto">
			<div class="contact-form">
				<h1>Get in Touch</h1>
				<form  method="post">
					<div class="row">
						<div class="col-sm-6">
							<div class="form-group">
<label for="inputName">Name</label>
<input type="text" class="form-control" id="inputName" name="fname" required>
</div>
</div>

<div class="col-sm-6">
<div class="form-group">
<label for="inputEmail">Email</label>
<input type="email" class="form-control" id="inputEmail" name="toemail" required>
</div>
</div>
</div>            

<div class="form-group">
<label for="inputSubject">Subject</label>
<input type="text" class="form-control" id="inputSubject" name="subject" required>
</div>
<div class="form-group">
<label for="inputMessage">Message</label>
<textarea class="form-control" id="inputMessage" name="message" rows="5" required></textarea>
</div>
					
<div class="text-center">
<button type="submit" class="btn btn-primary" name="send"><i class="fa fa-paper-plane"></i> Send</button>
</div>            
</form>
</div>
</div>
</div>
</div>
</body>
</html>

بارگیری کد منبع (نحوه ارسال ایمیل از localhost با استفاده از PHP)

اندازه: 134 کیلوبایت

نسخه: V 1.0