Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Определить, успешно ли доставлена почта

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
bizi
Отправлено: 02 Декабря, 2008 - 09:56:05
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




Как удалить из базы данных адреса мыл после удачной отправки?
 
 Top
Champion Супермодератор
Отправлено: 02 Декабря, 2008 - 12:03:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Если под удачной отправкой вы подразумеваете, что сообщение дошло до пользователя (а не просто отправилось), то шлите ему в сообщении ссылку, в которой каким-либо образом идентифицируется тот адрес, который вы хотите удалить. Он пройдет по ссылке, в которой выполняется delete from table1 where condition.

А если удалять просто после того, как функция отправки не выдала ошибок, то еще проще - адрес у вас есть...
 
 Top
Ыыы
Отправлено: 02 Декабря, 2008 - 12:53:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Июль 2008  
Откуда: Россия, Хабаровск


Помог: 0 раз(а)




Хм... но если второй вариант, то существует вероятность, отличная от нуля, что письмо будет не доставлено, а из таблицы адрес будет удален. Я предпологаю, что можно совместить два варианта.

А если Вам просто нужен ситаксис удаления, то откройте phpMyAdmin, нажмите на нужном мыле удалить, и скопируйте sql код. Это просто.

(Отредактировано автором: 02 Декабря, 2008 - 12:57:13)

 
 Top
bizi
Отправлено: 03 Декабря, 2008 - 08:16:23
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




Champion пишет:
Если под удачной отправкой вы подразумеваете, что сообщение дошло до пользователя (а не просто отправилось), то шлите ему в сообщении ссылку, в которой каким-либо образом идентифицируется тот адрес, который вы хотите удалить. Он пройдет по ссылке, в которой выполняется delete from table1 where condition.


Можно по подробнее какую ссылку написать?

А что касается просто удаление, то надо это сделать не руками а скрипт будет сам удалять те что отправил.
 
 Top
Ыыы
Отправлено: 03 Декабря, 2008 - 09:39:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Июль 2008  
Откуда: Россия, Хабаровск


Помог: 0 раз(а)




bizi пишет:
А что касается просто удаление, то надо это сделать не руками а скрипт будет сам удалять те что отправил.

Внимательности вам не занимать... Я не говорил удалять руками, я сказал где можно посмотреть как это делается на языке SQL.
 
 Top
Champion Супермодератор
Отправлено: 03 Декабря, 2008 - 09:46:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




у вас есть скрипт, кторый удаляет сообщения по некоторому условию. Просто подсоединяется к базе и выполняет delete.
Откуда взять условие. Самый простой случай (просто чтоб смысл):
Допустим в таблице у вас колонки email, id.
Вы посылаете пользователю сообщение и заканчиваете его словами
"пройдите по ссылке http://вашсайт/удаляющийскрипт?del_id=$N".
Когда формируете текст сообщения, встьавляете на место $N id того мыла, которое надо удвлить.
Ну а в скрипте запрос delete from xxx where id = $_GET['del_id']
 
 Top
bizi
Отправлено: 03 Декабря, 2008 - 16:30:07
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




Вообщем надо после рассылки функцию поставить удалить то что отправил, все просто.

Как написать эту функцию?
 
 Top
Champion Супермодератор
Отправлено: 03 Декабря, 2008 - 16:42:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Удалить в любом случае, и не важно, дошло ли до адресата?

Когда вы отправляли, вы каким-то запротом select email from table where condition выбрали мыло. После отправки сделайте delete from table where condition. condition - одно и то же условие
 
 Top
bizi
Отправлено: 04 Декабря, 2008 - 14:40:56
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




CODE (text):
скопировать код в буфер обмена
  1.  
  2.  
  3.  
  4. <?
  5.  
  6. $db_prefix="pst_"; // Префикс для таблицы
  7.  
  8. function dbc() {
  9.  $server = "localhost";
  10.  $login = "123";
  11.  $password = "123";
  12.  $database = "123";
  13.  $conn=mysql_connect($server,$login,$password);
  14.  mysql_select_db($database);
  15. }
  16.  
  17.  
  18. ?>
  19.  
  20. <?
  21.  
  22. $count = 0;
  23.  
  24. dbc();
  25.  
  26. $headers = 'MIME-Version: 1.0\r\n'.'Content-type: text/plain; charset=windows-1251\r\n'.'From: '.$return.'\r\nReply-To: '.$return.'\r\nReturn-Path: '.$return.'\r\nX-Mailer: PHP/'.phpversion().'\r\nContent-type: text/plain; charset=windows-1251';
  27.  
  28.  
  29.  
  30. $sql2="SELECT * FROM ". $db_prefix ."messages group by ob_email";
  31. $sel_an2=mysql_query("$sql2");
  32. while($an=mysql_fetch_array($sel_an2)) {
  33. $ob_email=$an["ob_email"];
  34.  
  35. mail("$ob_email", "$subj", "$msg\n\n", $headers);
  36. echo "<li>$ob_email - отправлено!";
  37.  
  38. $count ++;
  39.  
  40. if ($count == 15) die();
  41.       }
  42.       ?>
  43.  
  44.  


Вот такой код, что у меня не получается добавить, ошибку выдает.

Куда вставить эту функцию?
 
 Top
valenok Модератор
Отправлено: 10 Декабря, 2008 - 08:44:50
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Перенесено из темы "Удаление из базы данных"
После echo "<li>$ob_email - отправлено!";
бы тебе порекомендовал вызвать функцию mail один раз, и указать
в адресатах за раз сразу всех Mail("a@b.c, d@e.f , ...", "Subj" , "Message", "header")


-----
Truly yours, Sasha.
 
My status
 Top
Champion Супермодератор
Отправлено: 10 Декабря, 2008 - 08:56:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




А я бы еще посоветовал $переменные выносить из "таких строк", тем более, когда строка состоит только из переменной. Это отрицательно влияет на быстродействие. В таком скрипте, конечно, не принципиально, но, кстати, если будете заниматься спам-рассылкой ( Улыбка ) и делать это в большом цикле, то заметите.

И еще запрос SELECT * FROM ". $db_prefix ."messages group by ob_email, по-моему не сработает. Из-за group by в таком контексте.

Если вы шлете одно сообщение всем, то в цикле действительно не надо. А если всем разные сообщения, то надо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB