2012-02-10 2 views
0
내가 phpMailer를 사용하고

없이 PHPmailer 전화에 대한 데이터베이스 쿼리, 그리고 난 열 ID가 데이터베이스 테이블 "목록"을 가지고있다. 내가 뭘 이제 위의 코드를 phpMailer 예PHP 메시지를 보류하고 새로 고침

date_default_timezone_set('America/Toronto'); 

require_once('../class.phpmailer.php'); 
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded 

$mail    = new PHPMailer(); 

$body    = file_get_contents('contents.html'); 
$body    = eregi_replace("[\]",'',$body); 
$id = $_GET['id']; 

$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Host   = "smtp1.xample.com;smtp2.xample.com"; 
$mail->SMTPAuth  = true;     // enable SMTP authentication 
$mail->SMTPKeepAlive = true;     // SMTP connection will not close after each email sent 
$mail->Host   = "mail.example.com"; // sets the SMTP server 
$mail->Port   = 25;     // set the SMTP port for the GMAIL server 
$mail->Username  = "[email protected]"; // SMTP account username 
$mail->Password  = "password";  // SMTP account password 
$mail->SetFrom('[email protected]', 'Honda example'); 
$mail->AddReplyTo('[email protected]', 'Honda example'); 

$mail->Subject  = "PHPMailer Test Subject via smtp, basic with authentication"; 

@MYSQL_CONNECT("localhost","root","password"); 
@mysql_select_db("osher"); 
$query = "SELECT full_name, email, photo FROM employee WHERE id=$id"; 
$result = @MYSQL_QUERY($query); 

while ($row = mysql_fetch_array ($result)) { 
    $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test 
    $mail->MsgHTML($body); 
    $mail->AddAddress($row["email"], $row["full_name"]); 
    $mail->AddStringAttachment($row["photo"], "YourPhoto.jpg"); 

    if(!$mail->Send()) { 
    echo "Mailer Error (" . str_replace("@", "&#64;", $row["email"]) . ') ' . $mail->ErrorInfo . '<br />'; 
    } else { 
    echo "Message sent to :" . $row["full_name"] . ' (' . str_replace("@", "&#64;", $row["email"]) . ')<br />'; 
    } 
    // Clear all addresses and attachments for next loop 
    $mail->ClearAddresses(); 
    $mail->ClearAttachments(); 
} 

을 사용하고 현재하고있는 중이 야하는 내 테이블 경우, 이메일이 보류으로 상태가 100 개 이상의 항목이있는 db-email.php입니다

, 내가 사용 할 수 있도록하려면 php. 각 행 id를 선택하고 db-email.php?id=xx (여기서 x는 id 임)으로 전화하면 전자 메일이 전송됩니다.

수동으로 완료하면 정상적으로 작동합니다.

난 너희들이 내가이 프로세스를 자동화 할 수 있습니다 최선의 방법, 저를하는 데 필요한, 그 나는 email.php 오전, 가정

(페이지를 새로 고침 할 필요없이)이 100 이메일을 밀어 수있을 것입니다 I (버튼)을 치면 간단히 처리가 시작됩니다. (결과는 echo'n 대신에) '보낸'상태로 데이터베이스를 업데이트합니다.

I 내가 묻고 싶은 것이 무엇인지 잘 알고 있다면 도움이되는 친구를 부탁해. 난 당신이 자바 스크립트를 통해 데이터베이스 또는 서버와 아무것도 할 수 없어, jQuery를/AJAX 또는 뭔가 전문 지식을 가진 사람이 제가 당신의 일을하려고하지만 잘 모르겠어요이 작업 :

답변

0

를 달성하는 데 도움이 수 있으리라 생각합니다 또는 JQuery와 서버가 아닌에이 브라우저에서 실행 때문이다.
당신은 당신의 일을 할 몇 가지 매개 변수를 사용하여 서버에서 특정 .php 파일을 호출하는 ajax를 사용할 수 있습니다!

+0

나는 무엇을 말하려고 했는가. 나는 email.php 파일을 가지고있다. (어디에서 상태가 보류 상태 인 행에 대해 데이터베이스 테이블을 쿼리한다.) id 값을 검색하고 for 또는 while 루프에 넣고 위의 코드 파일을 쿼리 할 수 ​​있기를 바란다. 위), 계속 그렇게하십시오. 상태 = 보류 중 반환 = 0 카운트가 될 때까지 (이 모든 리다이렉트 또는 새로 고침없이, email.php 파일에서) ;-) –