나는 php/mysql 전문가가 아니지만 일반적으로 약간의 연구와 평가판으로 작업 할 수 있지만이 작업은 원하는대로 작동하지 않는다.PHP 테이블에서 메일 링하기
나는 광고 웹 사이트를 운영하고 있으며, 나는 (내가 할 수있는 일은 크론) 크론 작업을 설정하고 30 일 동안 광고가 게시 된 사용자에게 미리 알림 이메일을 보낼 계획이다. 나는 date_sub와 curdate를 사용하여 잘 작동하는 날짜를 얻었다. 내 쿼리는 30 일이 지난 데이터베이스의 이메일에서 사용하려는 모든 테이블을 가져옵니다.
나는 포스터 이름, 이메일 및 HTML 메시지와 함께 보낼 전자 메일을 얻을 수 있지만 쿼리하는 첫 번째 전자 메일 주소로만 보내고 있습니다. 루프 문제라고 생각하고 있나? 그러나 나는 그것을 알아낼 수 없습니다.
내 스크립트는 아래에 게시됩니다 - 나는 이것에 대한 전문가가 아니라고 말했던 것처럼 성가신 것에 대해 사과합니다. 그러나 나는 그것이 내가 보여주는 첫 번째 광고에만 보낼 예외와 함께 대부분 원하는 방식으로 작업하고 있습니다.
SQL 쿼리의 대부분의 테이블 이름에는 html 메시지에서 사용할 데이터가 들어 있습니다.
<?php
header("Content-type: text/plain");
// OPEN DATABASE
define('DB_HOST','localhost');
define('DB_USER','');
define('DB_PASS','');
define('DB_NAME','');
mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Connetion to database failed!");
mysql_select_db(DB_NAME);
joinDateFilter();
// WHOSE AD IS 30 DAYS OLD
function joinDateFilter(){
$query = mysql_query("SELECT name,title,email,idPost,password FROM oc_posts WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) = CAST(insertDate AS date)");
$mail_to = "$email";
while ($row = mysql_fetch_array($result)){
echo $row['name']." - ".$row['title']." - ".$row['email']."\n";
echo $mail_to = $row['email'].", ";
echo $title=$row["title"];
echo $name=$row["name"];
echo $idPost=$row["idPost"];
echo $password=$row["password"];
}
if (!empty($mail_to)){
sendEmail($mail_to,$email,$name,$title,$idPost,$password);
}
}
// SEND EMAIL
function sendEmail($mail_to,$email,$name,$title,$idPost,$password) {
$mail_to ="$mail_to";
$email ="$email";
$name = "$name";
$title = "$title";
$idPost = "$idPost";
$password = "$password";
$from = "[email protected]";
//begin of HTML message
$message = "<html>
<body bgcolor=\"#FFFFFF\">
Hello, $name, your ad $title is 30 days old etc...
</body>
</html>";
//end of message
$headers = 'From: '.$from."\r\n" .
'Reply-To:'.$_POST['email']."\r\n" .
"Content-Type: text/html; charset=iso-8859-1\n".
'X-Mailer: PHP/' . phpversion();
mail($mail_to, "Your ad is 30 days old", $message, $headers);
}
?>
도움이 될 것입니다.
감사합니다.
또한 더 이상 사용되지 않는 기능으로 mysql 함수 사용을 중단해야합니다. PDO 또는 mysqli를 사용하십시오. –
감사합니다. 이제 작동합니다. – user2113517
@ user2113517 이제 작동한다는 답을 수락하는 것을 잊지 마세요. –