PHPMailer จะเรียกใช้ชื่ออีเมลที่อยู่ในฐานข้อมูลยังไงเพื่อเป็นต้นทางในการส่งข้อความ
พี่ๆครับ คือผมเจอปัญหาตรงที่ว่าตอนเเรกผมได้ใช้PHPMailerในการส่งข้อความไปยังเมลปลายทางแต่เมลปลายทางที่จะส่ง userต้องเป็นคนระบุเอง แต่เมลต้นทางนั้นผมได้เขียนไว้ในโค้ดเลยซึ่งมันทำงานได้ปกติ แต่ทีนี้ผมพึ่งคิดได้ว่าต้องรองรับการใช้งานของคนหลายคน การทำงานก็คือนักศึกษาจะส่งข้อความหาอาจารย์ ผมจะต้องแก้โค้ดยังไงให้ นศ ทุกคนนั้นสามารถส่งข้อความหาอาจารย์ได้ ตอนที่ นศ เข้าlogin จะเก็บชื่อเมลไว้ในฐานข้อมูลอยู่ แต่ไม่เก็บรหัสผ่าน แต่โค้ดPHPMailerต้องใช้ ชื่อเมลและรหัสผ่านของผู้ส่ง ขอคำแนะนำหน่อยครับ
Code (PHP)
<?php
$msg = "";
use PHPMailer\PHPMailer\PHPMailer;
include_once "PHPMailer/PHPMailer.php";
include_once "PHPMailer/Exception.php";
include_once "PHPMailer/SMTP.php";
if (isset($_POST['submit'])) {
$student_name = $_POST['textname'];
$email = $_POST['textemail'];
$m = '<B>'.'<div>รหัสนักศึกษา:</div></B>'.'<p>'.$_POST["textnumber"].'</p>
<B>'.'<div>ชื่อนักศึกษา:</div></B>'.'<p>'.$_POST["textname"].'</p>
<B>'.'<div>วันที่นัดหมายอาจารย์:</div></B>'.'<p>'.$_POST["textdate"].'</p>
<B>'.'<div>เวลาที่นัดหมายอาจารย์:</div></B>'.'<p>'.$_POST["texttime"].'</p>
<B>'.'<div>ประเภทคำปรึกษา:</div></B>'.'<p>'.$_POST["textcategory"].'</p>
<B>'.'<div>ปีการศึกษา:</div></B>'.'<p>'.$_POST["textyear"].'</p>
<B>'.'<div>ข้อความถึงอาจารย์:</div></B>'.'<p>'.$_POST["textmessage"].'</p>';
$mail = new PHPMailer(); //เรียกใช้งาน class phpmailer
$sender = "[email protected] "; //กำหนด mail ผู้ส่งเก็บไว้ในตัวแปร
//if we want to send via SMTP
$mail->Host = "smtp.gmail.com"; //mail server ของเรา
$mail->CharSet = "utf-8"; //ในส่วนนี้ ถ้าระบบเราใช้ tis-620 หรือ windows-874 สามารถแก้ไขเปลี่ยนได้
$mail->isSMTP(); //เปิดการใช้งาน SMTP
$mail->SMTPAuth = true; //เลือกการใช้งานส่งเมล์ แบบ SMTP
$mail->Username = $sender; //account e-mail ของเราที่จะใช้ส่ง
$mail->Password = "xxxxxxxxxxxxxxxx"; //รหัสผ่าน e-mail ของเราที่ต้องการจะส่ง
$mail->SMTPSecure = "tls"; //TLS
$mail->Port = 587; //587
$mail->addAddress($_POST["textemail"]); //Email ปลายทางที่เราต้องการส่ง(ไม่ต้องแก้ไข)
$mail->setFrom($sender); //กำหนด E-mail และชื่อผู้ส่ง
$mail->Subject =$student_name; //หัวข้อที่จะส่ง(ไม่ต้องแก้ไข)
$mail->isHTML(true); //ถ้า E-mail นี้ มีข้อความในการส่งเป็น tag html ต้องแก้ไข เป็น true
$mail->Body = $m; //ข้อความ ที่จะส่ง(ไม่ต้องแก้ไข)
if($mail->Send()) //Send an Email. Return true on success or false on error
{
$msg = '<div class="alert alert-success">บันทึกข้อมูลเรียบร้อยแล้ว</div>';
}
else
{
$msg = '<div class="alert alert-danger">เกิดข้อผิดพลาด!</div>';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Send Teacher Mail</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$( "#datepicker" ).datepicker({ dateFormat: 'yy-mm-dd' });
});
</script>
<style>
.button_submit {
background-color: #2952a3;
border: none;
color: white;
padding: 10px 15px;
text-align: center;
font-size: 14px;
margin: 2px 1px;
opacity: 0.6;
transition: 0.3s;
display: inline-block;
text-decoration: none;
cursor: pointer;
}
.button:hover {opacity: 1}
.button_reset {
background-color: #cc0000;
border: none;
color: white;
padding: 10px 15px;
text-align: center;
font-size: 14px;
margin: 2px 1px;
opacity: 0.6;
transition: 0.3s;
display: inline-block;
text-decoration: none;
cursor: pointer;
}
.button:hover {opacity: 1}
</style>
</head>
<body>
<br />
<div class="container">
<div class="row">
<div class="col-md-8" style="margin:0 auto; float:none;">
<h1 align="center">นัดหมายอาจารย์ที่ปรึกษา</h1>
<br /> <br />
<?php print_r($msg); ?>
<form method="post" action="sendemail02.php" enctype="multipart/form-data">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>รหัสนักศึกษา</label>
<input type="text" name="textnumber" placeholder="รหัสนักศึกษา.." class="form-control" autocomplete="off" required/>
</div>
<div class="form-group">
<label>ชื่อนักศึกษา</label>
<input type="text" name="textname" placeholder="ชื่อนักศึกษา.." class="form-control" autocomplete="off" required/>
</div>
<div class="form-group">
<label>อีเมลอาจารย์</label>
<input type="email" name="textemail" class="form-control" placeholder="อีเมลอาจารย์.." required/>
</div>
<div class="form-group">
<label>วันที่นัดหมายอาจารย์</label>
<input type="text" name="textdate" id="datepicker" class="form-control" placeholder="ระบุวันที่.." autocomplete="off" required/>
</div>
<div class="form-group">
<label>เวลาที่นัดหมายอาจารย์</label>
<select name="texttime" class="form-control" required>
<option value="">ระบุเวลา..</option>
<option id="1002" name="1002" value="09.00">09.00</option>
<option id="1004" name="1004" value="10.00">10.00</option>
<option id="1006" name="1006" value="11.00">11.00</option>
<option id="1008" name="1008" value="12.00">12.00</option>
<option id="1010" name="1010" value="13.00">13.00</option>
<option id="1012" name="1012" value="14.00">14.00</option>
<option id="1014" name="1014" value="15.00">15.00</option>
<option id="1016" name="1016" value="16.00">16.00</option>
<option id="1018" name="1018" value="17.00">17.00</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>ประเภทคำปรึกษา</label>
<select name="textcategory" class="form-control" required>
<option value="">เลือกคำปรึกษา..</option>
<option id="2001" name="2001" value="การเรียน">การเรียน</option>
<option id="2002" name="2002" value="ทุนการศึกษา">ทุนการศึกษา</option>
<option id="2003" name="2003" value="ปัญหาชีวิต">ปัญหาชีวิต</option>
<option id="2004" name="2004" value="ปัญหาสุขภาพ">ปัญหาสุขภาพ</option>
</select>
</div>
<div class="form-group">
<label>ปีการศึกษา</label>
<input type="text" name="textyear" placeholder="ปีการศึกษา.." class="form-control" autocomplete="off" pattern="\d*" required />
</div>
<div class="form-group">
<label>ข้อความถึงอาจารย์</label>
<textarea name="textmessage" placeholder="ข้อความถึงอาจารย์.." class="form-control" autocomplete="off" required rows="8"></textarea>
</div>
</div>
</div>
<?php
include('connect_db.php');
if (isset($_POST['submit'])) {
$sql = "INSERT INTO appointment (student_number, student_name, email, app_date ,time_id, category_id, app_year,app_message)
VALUES ('".$_POST["textnumber"]."','".$_POST["textname"]."','".$_POST["textemail"]."','".$_POST["textdate"]."','".$_POST["texttime"]."','".$_POST["textcategory"]."','".$_POST["textyear"]."','".$_POST["textmessage"]."')";
$query = mysqli_query($conn,$sql);
if($query) {
//echo "Record add successfully";
}
}
mysqli_close($conn);
?>
<div class="form-group" align="center">
<button type="submit" name="submit" class="button_submit">บันทึก</button>
<button type="reset" name="submit" class="button_reset">ยกเลิก</button>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
?>
Tag : PHP, MySQL
Date :
2019-02-18 12:19:35
By :
max
View :
1371
Reply :
5
1คุณต้องมี พาสฯของผู้ส่ง ถ้าไม่มีจ่ะเป็น fake mail
2 คุณต้องเขียนเผื่อหลายโดเมน
Date :
2019-02-18 13:50:26
By :
Chaidhanan
ก็ขอเอาจากเขานั่นแหล่ะ แต่คงยากมั้ง เพราะเขาไม่รู้ว่าคุณจะเอาไปทำอะไรมัง
ใช้วิธีการส่งแบบ fake mail นั่นแหล่ะครับ ไม่ต้องสนใจ ถ้าคนรับเขาไม่ซีเรียส ยอมรับได้ก็จบ
Date :
2019-02-18 15:10:08
By :
Chaidhanan
คือ มันกำนด from mail ได้นะครับ โดย user email ของ sender ผู้ส่งจริงจะเป็นใครก็ได้
แต่ก็ตรวจสอบได้ว่า จริงๆแล้วใครเป็นผู้ส่ง แบบนี้เรียกว่า fake mail คือ ชื่อ from mail กับ sender mail จะเป็นคนละเมล กัน
ซึ่งเขาก็ทำกันเยอะแยะไปครับ ขอแค่ผู้รับไม่ซีเรียส ก็ไม่มีปัญหา
Date :
2019-02-20 12:37:42
By :
Chaidhanan
Load balance : Server 04