나는 항목의 만료 날짜를 보여주는 SQL table을 가지고 있으며 전자 메일을 통해 매일 만료 날짜의 상태를 보내려고합니다. 여기서 사용자는 나열된 항목의 만료 날짜 업데이트를 알 수 있습니다.phpmailer를 사용하여 SQL 테이블에서 정보를 보내는 방법은 무엇입니까?
나는 로컬 호스트을 사용하여 this example in phpmailer을 사용하려고 시도했지만 작동하지만 내 케이스와 연결하는 방법을 모르겠다. 예를 들어
이 $body= include ('sql.php');
같이 수행 할 수 있습니다 또는 내가 this table에서 만료 날짜 및 만료 메시지를 전송에만 관심이 어디에? 그렇게 할 수있는 다른 방법이 있습니다, 그리고 그것은을 보낼 수 전체 테이블? 여기
<?php
$con=mysqli_connect('localhost','','','arduino');
if(mysqli_connect_errno($con))
{
echo 'Failed to connect:'.mysqli_connect_error();
}
else
echo 'Connected Successfully!! </br>';
$url=$_SERVER['REQUEST_URI'];
$sql = "SELECT
ID,
Item_Name,
Expiry_Date,
CASE
WHEN `Expiry_Date` < CURDATE() THEN CONCAT(`Item_Name`,' has EXPIRED already')
WHEN `Expiry_Date` = CURDATE() THEN CONCAT(`Item_Name`,' will expire today')
WHEN `Expiry_Date` BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY) THEN CONCAT(`Item_Name`,' will expire tomorrow')
WHEN `Expiry_Date` > DATE_ADD(CURDATE(), INTERVAL 1 DAY) THEN CONCAT(`Item_Name`,' has not expire yet')
ELSE 'Error processing expiration date.'
END AS `Expiration_Message`
FROM
test;";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)){
echo ($row['Expiration_Message']);
echo '<br>';
}
print_r($row);
mysqli_close($con);
?>
입니다 그리고 여기에 내가 phpmailer 예를 들어 당신은 그것을 표시하지 변수로 결과를 저장해야
<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
//Load composer's autoloader
require 'vendor/autoload.php';
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
//Server settings
//$mail->SMTPDebug = 1; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'Smtp.live.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'XXXXX'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
//Recipients
$mail->setFrom('[email protected]', 'Smart Fridge');
$mail->addAddress('[email protected]', 'Joe'); // Add a recipient
$body= '<p><td><strong>Hello</strong></td> this is my first email!!!!</p>';
//Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Expiry Date';
$mail->Body = $body;
$mail->AltBody = strip_tags($body);
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
}
도움 주셔서 감사합니다. 귀하의 방법은 효과가 있지만, 'Expiration_Message' 및'Expiry_Date '와 같은 두 개의 행을 보내려면 어떻게해야합니까? – Monzer
그런 다음 문자열'$ mailBody. = $ row [ 'Expiration_Message']에 연결하기 만하면됩니다. ", 날짜 :". $ row [ 'Expiry_Date']. "
\ n";'그냥 읽으십시오 : http://php.net/manual/en/language.operators.string.php – vaso123
다시 한번 감사드립니다. 이 경우 SMS 메시지, 전보 또는 기타 유형의 알림을 보낼 수있는 방법이 있는지 알고 있습니까? – Monzer