2012-04-22 2 views
1

나는 광고 웹 사이트를 운영하고 있으며 광고가 카테고리에 등록되어 있고 가입 한 도시에 광고가 올 때 사용자에게 메일을 보낼 수있는 모드를 만들고 있습니다. 이제, 나는 문제가있다. 이 파일을 하루에 한 번 cronjob과 함께 실행하도록 설정했습니다. 하루에 내 웹 사이트에는 하루에 50 개의 광고가 게시되므로 사용자는 하루에 50 개의 이메일을 받게됩니다. 하나의 이메일에 50 개의 이메일을 모두 포함시키고 싶기 때문에 사용자는 1 개의 이메일을 받게되지만 그 방법은 모르겠습니다. 예 : 각 이메일에는 링크가 하나씩 있으며 50 개의 이메일에는 50 개의 링크가 있습니다. 나는 사용자가 그것에있는 모든 50의 연결이있을 단 하나 전자 우편을받는 원한다. 여러 가지 방법을 시도했지만 시도 할 수 없었습니다. 모든 제안을 환영합니다.하나의 이메일에 일부 이메일 포함

감사

답변

0

단순히 배열 키와 이메일을 설정 배열에 광고 정보를 수집합니다.

$recipients = array(); 
while ($row = mysql_fetch_assoc($result)) { 
    $email = $row["email"]; 
    if (!array_key_exists($email, $recipients)) { 
    $recipients[$email] = array(); 
    } 
    $recipients[$email][] = $row; 
} 

이 다음에 배열이 있고 각 전자 메일에는 $ row-entries의 변수 번호가 있습니다. foreach 루프를 사용하여 메일 템플리트에 이러한 항목을 추가하기 만하면됩니다.

0

이 코드는 새를 작성하는 훨씬 더 간단, 그것은 변경이 너무 나쁘다. 배열을 만들고 전자 메일에 대한 정보를 즉시 보내지 말고 제안 할 수 있습니다. 배열에 이미 동일한 이메일이있는 항목이있는 경우 새 이메일을 추가하지 않고 기존 이메일에 정보를 추가하십시오. 모든 전자 메일을 가져온 후 새 배열을 반복하고 전자 메일을 보냅니다.

0

이미 스크립트로 cronjob을 실행 중이므로 적절한 시간 (이른 아침이나 밤)을 설정하고 분류 된 코드에서 게시물을 저장하는 데이터베이스를 쿼리하고 마지막으로 게시 된 50 개를 선택하여 이메일을 보내고 최신 게시물 이메일을 수신하도록 등록 된 사용자에게 보내십시오. 내가 오해하지 않는 한 꽤 똑바로 보인다.

또한 (나는 위의 스크립트에서) 모든 작은 코드 블록 이후에 PHP에서 뛰어 오르고 뛰어 내리는 이유에 대해 매우 궁금합니다. 그것은 매우 혼란스럽고 솔직히 내가 코드를 읽고 싶지도 않게했습니다. 위에서 표시된 내용으로 PHP를 떠날 이유가 없습니다. 단, 여기에 포함시키지 않은 경우는 예외입니다. 그렇다면 내 불만을 무시하십시오.

<?php } ?> 
<?php } ?> 
<?php } ?> 
<?php } ?> 
<?php } ?> 
<?php } ?> 

/scratcheshead

관련 문제