Avatar billede tjenester Nybegynder
09. august 2001 - 10:35 Der er 14 kommentarer og
1 løsning

udsendelse af nyhedsbrev giver problemer

Hejsa
jeg udsender et nyhedsbrev til ca 25000 modtagere
men jeg har det problem at den ikke sætter den rigtige afsender på alle nyhedsbreve kan i hjælpe mig med at se hvad der går galt her :
en del modtagere for emailen fra
info@e-pressen.dk
men en stor del for den fra nobody@tjenester.dk
jeg så gerne at alle fik den fra info@e-pressen.dk
<?
mysql_connect(\"\");
mysql_select_db(\"\");

$res = mysql_query(\"SELECT * FROM table\");

while ($row = mysql_fetch_array($res)) {
  //mail($row[\"email\"], \"Nyhedsbrevet fra E-Pressen.dk\", $s, \"From: e-pressen.dk <info@e-pressen.dk>\\nReply-To: info@e-pressen.dk\\n\");
  mail($row[\"email\"], \"Nyhedsbrevet fra E-Pressen.dk\", $s, \"From: info@e-pressen.dk\\nReply-To: info@e-pressen.dk\\n//\");
  echo \"Mail sendt til \".$row[\"email\"].\"<BR>\";
}
echo \"Slut\"
?>
hilsen
lars
Avatar billede Slettet bruger
09. august 2001 - 10:44 #1
måske du skulle sætte en sleep() ind, så hver afsending får ½ sekunds tid..eller 1 sekund...

Jeg vil tro at din udbyders (dig selv?) mailserver ikke kan følge med..
Avatar billede tjenester Nybegynder
09. august 2001 - 10:55 #2
hejsa el barto
kan du ikke lige lave den med den sleep ?
og evt sende det til mig på
lars@tjenester.dk
færdigt ?
lars
Avatar billede Slettet bruger
09. august 2001 - 11:07 #3
jeg laver ikke færdigt arbejde, men tag et kig på http://px.sklar.com/code-pretty.html?code_id=218 og stik mig 10 point for den gode ide... :)
Avatar billede doeleman Nybegynder
09. august 2001 - 11:11 #4
Kig i manualen: http://php.net/mail

Note: On Win32 systems, you must use \\r\\n to seperate headers. Please also note that the cc: and bcc: headers are case sensitve and should be written as Cc: and Bcc: on Win32 systems.


Prøv at rette ovenstående:
mail($row[\"email\"], \"Nyhedsbrevet fra E-Pressen.dk\", $s, \"From: info@e-pressen.dk\\r\\nReply-To: info@e-pressen.dk\\r\\n//\");


Har du sendt 25.000 mails ud med dette script?
Avatar billede Slettet bruger
09. august 2001 - 11:11 #5
Det er især dette du skal kigge på:

define(\"SLEEP\", 1); // amount of seconds to sleep between mailings. Usefull for mellowing out your mailing rate to be nice to the server. Can be zero.
// the script is set to contiue executing after you log off.. so set and forget.

// fill up the buffer so flush() will work. As soon as user sees. sending mail... they can be sure the text has been uploaded.
print \"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\");
  print(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\");
  print(\"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>\");
  // Ignore user abort so user can disconnect and have a snack while mail is being sent.
  ignore_user_abort();
  print(\"SENDING MAIL...........<p>\");
  flush();
  // send the mail one at a time. sleep if specified.
  while($row = mysql_fetch_row($db_results)) {
      set_time_limit(SLEEP + 30);
      if(mail($row[0], $subject, \"Dear \" . $row[1] . \",\\n\\n\" . $header . \"\\n\\n\" . $body . \"\\n\\n\" . $footer, \"From: \" . SENDER)){
        print($row[0] . \"... sent<br>\\n\");
      }
      else{ $errors[] = $row[0]; }
      if(SLEEP) { sleep(SLEEP); }
  }
Avatar billede jasber Nybegynder
09. august 2001 - 11:11 #6
tjenester>> Efter hvad jeg kan se på din kode sender du dit nyheds brev ud til hver enkelt, istedet for at sende det til en liste.

I dit sted ville jeg nok prøve at lave det så det bliver sendt ud til en gruppe af brugere på én gang, som BCC. F.eks kunne du lave et loop der for hver 100 mail adresser sender en mail afsted.

Det vil gi\' et meget mindre press på din mail server.
Avatar billede jasber Nybegynder
09. august 2001 - 11:15 #7
Som din kode er nu vil ideén med en sleep() på 1 sek. resultere i en \"execution time\" på over 6 timer (hvis du vitterligt sender ud til 25.000 modtagere).

Bortset fra det er det en udemærket idé med sleep().

Hov, kom lige i tanker om, hvis du vil prøve med et mindre delay end 1 sek. kan du bruge usleep() funktionen instedet.
Avatar billede tjenester Nybegynder
09. august 2001 - 11:17 #8
Hejsa

tja der er jo flere gode foreslag jeg vil lige se på dem
så vender jeg tilbage
Lars
Avatar billede tjenester Nybegynder
09. august 2001 - 11:19 #9
Hej jasber
jeg vil helst forsætte med det script jeg bruger nu
kan du evt indsætte en sleep i mit script ?
gerne en usleep

ville det være en fordel at bruge pcconnect
istedet for mysql_connect
Lars
Avatar billede jasber Nybegynder
09. august 2001 - 11:39 #10
tjenester>> Det burde ikke betyde noget om du kører med mysql_connect() eller om du bruger mysql_pconnect.

Her er et eksempel på din kode med en usleep() på ½ sekund tilføjet (1 sek = 1000000 mikro sek.):

<?
mysql_connect(\"\");
mysql_select_db(\"\");

$res = mysql_query(\"SELECT * FROM table\");

while ($row = mysql_fetch_array($res)) {
  //mail($row[\"email\"], \"Nyhedsbrevet fra E-Pressen.dk\", $s, \"From: e-pressen.dk <info@e-pressen.dk>\\nReply-To: info@e-pressen.dk\\n\");
  mail($row[\"email\"], \"Nyhedsbrevet fra E-Pressen.dk\", $s, \"From: info@e-pressen.dk\\nReply-To: info@e-pressen.dk\\n//\");
  echo \"Mail sendt til \".$row[\"email\"].\"<BR>\";
  usleep(500000);
}
echo \"Slut\"
?>

Du skal dog være opmærksom på (som jeg skrev tidligere) at det vil tage noget længere før scriptet er færdigt.

Du kan selv justere \"delayet\" ved at \"skrue på værdien i usleep() funktionen.
Avatar billede tjenester Nybegynder
09. august 2001 - 11:58 #11
hej jasber
har du icq ?
min er 61045719
lars
Avatar billede jasber Nybegynder
09. august 2001 - 12:07 #12
nej
Avatar billede jasber Nybegynder
09. august 2001 - 12:08 #13
la\' os holde det her, så kan andre også følge med
Avatar billede limemedia Nybegynder
10. august 2001 - 11:55 #14
Hvis du kigger på

http://www.php.net/manual/en/function.mail.php
Example 4. Sending complex email.

kan du se meget mere om mail headers i PHP... leger du lidt med eksemplet, skifter lidt navne laver du en række headers som fx.

$headers = \"From: info@e-pressen.dk <info@e-pressen.dk>\\n\";
$headers .= \"X-Sender: <info@e-pressen.dk>\\n\";
$headers .= \"X-Mailer: E-Pressen.dk\\n\";
$headers .= \"X-Priority: 3\\n\";
$headers .= \"Return-Path: <info@e-pressen.dk>\\n\";

tilføj disse til din mail og problemet løst.

/ LJ
Avatar billede tjenester Nybegynder
10. august 2001 - 12:10 #15
Hejsa
jeg takker alle for deres indlæg
men vi valgte løsningen fra LJ
som ser ud til at virke bedst
Lars
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester