Mam problem z funkcja mail(). Wysyłam mail w HTML'u i po odebraniu go w Thunderbirdzie i GMail'u wszystko wyglada ok, a przy odbieraniu przez Gazeta.pl i WP.pl tresć mail jest widoczna podwójnie tzn. w jednym emailu mam poprawna tresć wiadomości a zaraz pod nią w tym samym emailu powtórzenie.

  1. <?
  2. /*
  3. * sendNewsletter.php
  4. *
  5. *
  6. */
  7. require("config.ini.php");
  8. $database = new mysqli($dbHost, $dbUser, $dbPassword, $dbDatabase);
  9. $database->set_charset("utf8");
  10. $subject = "";
  11. //define('SMARTY_DIR', 'smarty/libs/');
  12. //require_once(SMARTY_DIR . 'Smarty.class.php');
  13. //$smarty = new Smarty();
  14. //$smarty->debugging = true;
  15. function composeMessage($parentId)
  16. {
  17. global $database, $settings, $subject;
  18. $categories = array();
  19. $messages = $database->query($q = "SELECT newsletter.id, newsletter.sendTime, newsletter.type, newsletter.time
    , newsletter.subject, newsletter.content, newsletter.category, newsletter.addBook
    , newsletter.sent FROM "
    .DB_PREFIX."newsletterMessages as newsletter WHERE (id = ".$parentId." AND parentId = 0) OR parentId = ".$parentId." ORDER BY parentId ASC");
  20. $message = $messages->fetch_row();
  21. do
  22. {
  23. switch($message[6])
  24. {
  25. case "":
  26. $categories[$message[6]] = "<span style=\"".$settings->getValue("newsletter", "MainContentStyle")."\">".$message[5]."</span></br>";
  27. $subject = $message[4]." - ".date($settings->getValue("newsletter", "DateFormat"), $message[1]);
  28. break;
  29. default:
  30. $categories[$message[6]] = "<span style=\"".$settings->getValue("newsletter", "CategoryHeaderStyle")."\">".$message[4]."</span></br>" .
  31. "<span style=\"".$settings->getValue("newsletter", "CategoryContentStyle")."\">".$message[5]."</span></br>";
  32. break;
  33. }
  34. }
  35. while($message = $messages->fetch_row());
  36. return $categories;
  37. }
  38.  
  39. function sendNewsletter($type, $addBook, $message)
  40. {
  41. global $database, $subject;
  42. $categories = $message;
  43. $users = $database->query($q = "SELECT email, fullName, newsletterCategories, chaptersSent FROM users WHERE
     (newsletter = \""
    .$type."\" OR '".$type."' = 'oddly') AND privileges NOT LIKE '%newsletterInactive%';");
  44. print $q;
  45. while($user = $users->fetch_row())
  46. {
  47. if($user[0] == "") continue;
  48. $message = "<html><body>";
  49. $message.=$categories[""];
  50. foreach(split(",", $user[2]) as $category)
  51. {
  52. $category = trim($category);
  53. if(array_key_exists($category, $categories))
  54. {
  55. $message.=$categories[$category];
  56. }
  57. }
  58. $message.="</body></html>";
  59. print("Wysłano wiadomość do".$user[0]);
  60. mail($user[0], $subject, stripslashes($message), "From: capITalis.pl<newsletter@capitalis.pl>r\nContent-type: text/html; charset=utf-8r\n");
  61. }
  62. }
  63.  
  64. $messagesToSend = $database->query("SELECT id, type, addBook FROM ".DB_PREFIX."newsletterMessages WHERE sendTime<".time()." AND parentId = 0 AND sent = 0");
  65. while($message = $messagesToSend->fetch_row())
  66. {
  67. sendNewsletter($message[1], $message[2], composeMessage($message[0]));
  68. $database->query("UPDATE ".DB_PREFIX."newsletterMessages SET sent = 1 WHERE id=".$message[0]);
  69. }
  70. ?>


Proszę o pomoc.

Pozdrawiam,
Krzysiek Bielicki