2012-04-22 1 views
1

У меня есть сайт для объявлений, и я делаю мод, который будет отправлять мои пользователи, когда объявление опубликовано в категории и в городе, где они подписаны. Теперь у меня проблема. Я установил этот файл для запуска один раз в день с помощью cronjob. Через день на моем сайте размещается 50 объявлений в день, поэтому пользователь получает 50 писем в день. Я хочу включить все 50 писем в один, так что пользователь получит 1 электронное письмо, но я не знаю, как это сделать. Ex: Каждое электронное письмо имеет одну ссылку и 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-loop.

0

Этот код слишком плохо, чтобы изменить его, это гораздо проще написать новый. Я могу предложить вам создать массив и поместить в него информацию для электронной почты вместо отправки сразу. Если массив уже содержит элемент с тем же адресом электронной почты, не добавляйте новое письмо, а добавляйте информацию к существующей электронной почте. После извлечения всех электронных писем итерации через новый массив и отправку писем.

0

Поскольку вы уже используете cronjob для скрипта, просто установите подходящее время (раннее утро или ночь) и запросите базу данных, в которой хранятся сообщения из объявлений, выберите последние 50, добавьте их в электронной почты и отправить их пользователям, зарегистрированным для получения последних сообщений электронной почты. Кажется довольно прямолинейным, если я что-то не понял.

Кроме того, мне очень любопытно, почему (в вашем сценарии выше) вы переходите и выходите из PHP после каждого небольшого блока кода. Это очень отвлекает, и, откровенно говоря, я даже не хочу читать код. Нет причин из того, что показано выше, когда-либо покидать PHP - если только это не все маленькие фрагменты, которые вы включили вместе, чтобы отобразить здесь. Если это так, проигнорируйте мои жалобы.

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

/scratcheshead