2012-12-03 3 views
-1

나는이 코드를 사용하여 TABLE (학생)의 모든 학생에게 전자 메일 알림을 보내려고했지만 물론 학생의 전자 메일은 데이터베이스에 이미 저장되어 있으므로이 코드를 시도했을 때 한 학생에게 이메일 (테이블의 첫 번째 이메일)! 나는 "테스트 메일 서버 도구"를 사용하여 메일이 전송되는지 여부를 확인했으며, 한 학생에게 메일 만 보내면 어떻게 테이블 (학생)의 모든 학생에게 보낼 수 있습니까? 당신은이 같은 결과 집합을 통해 루프 필요둘 이상의 사용자에게 전자 메일 알림

include("connect.php"); 


    $Load=$_SESSION['login_user']; 
     $smail= "Select Email from admin WHERE ID=$Load "; 
    $email= mysql_query($smail); 

    $result3 = mysql_query("Select email from student") or die(mysql_error()); 
    $row3 =mysql_fetch_array($result3); 
    $mail =$row3['email']; 
    $to = $mail; 
     $subject = "SPMS"; 
     $message = "You have a new Schedule" ; 
    $headers = "From: $email"; 
     $sent = @mail($to, $subject, $message, $headers) ; 
     if($sent) {print "Your Email Notifications send successfully"; } 
     else {print "We encountered an error sending your mail"; } 
+0

이게 루프에 있습니까? 나는 당신의 탁자에서 1 개의 레코드를 가져 와서 계속 전진하는 것을 보았습니다. 지금은 코드가 제대로 작동하는 것처럼 보입니다. – Robert

+0

일반적인 SMTP 방법을 사용해 보셨습니까? '$ to = "$ email1, $ email2, $ email3"'... – Izkata

+0

하지만, 그게 최선이 아닙니다. 누구든지이 질문에 답할 수 없으므로 숨은 참조 필드를 사용해보십시오. – Izkata

답변

3

,

$subject = "SPMS"; 
$message = "You have a new Schedule" ; 
while($row3 = mysql_fetch_array($result3)) { 
$mail =$row3['email']; 
$to = $mail;  
$headers = "From: $email"; 
$sent = @mail($to, $subject, $message, $headers) ; 
if($sent) { print "Your Email Notifications send successfully"; } 
else {print "We encountered an error sending your mail"; } 
} 

여기 참조 용 manual입니다.

참고 : Mysql_ * 확장은 더 이상 사용되지 않습니다. 가능한 경우 Mysqli 또는 PDO를 사용하십시오.

+0

입력 할 때 커피를 마시지 않으려면 +1입니다. :) – Digitalis

+0

방금 ​​끝낸 집입니다. D –

+0

좋아, 나르시오. on :) – Digitalis

0

여러 전자 메일 주소로 반복 한 다음 전자 메일 주소를 foreach하여 메일을 보냅니다.

<?php 

    $addresses = array("[email protected]", "[email protected]", "[email protected]"); 

    foreach ($addresses as $index => $address) 
    { 
     // send email to $address. 
    } 

?> 

물론 이것은 실제 코드는 아니지만 논리가 명확해야합니다.

1

PHP 매뉴얼에 따르면, $to = implode(', ', $mail)

여러 수신자에게 보낼 숨은 참조 헤더를 사용할 수 있습니다, 그래서 당신의 코드를 사용하여 "을"매개 변수에 쉼표로 구분 된 여러 수신자에게 보낼 수 있어야한다 모든 주소를 공개하지 않습니다.

또한 PHPMailer을 확인하여 사이트의 전자 메일 작업 개발을 쉽게 할 수 있습니다.

+0

내가 기억 하기론, 이것은 메일 서버가 어떻게 구성되어 있는지에 달려있다. 이 옵션을 사용하면 코드 이식성에 영향을 줄 수 있습니다. 또한 모든 수신자는 메일이 전송 된 모든 사람의 이메일 주소를 볼 수 있습니다. 그것은 프라이버시에 문제를 일으킬 수 있습니다. – Digitalis

+0

그래, Bcc 제안을 추가 한 이유는 다음과 같습니다 .-) – felipelavinz