Avatar billede Slettet bruger
02. juli 2007 - 19:10 Der er 7 kommentarer og
1 løsning

Nyhedsbrevs script volder STORE problemer

Hej, jeg har lavet et php script som sender nyhedsbrev ud til email adresser som ligger i en MySql database.
Det som den skal sende, altså selve nyhedsbrevet for den fra en html side.

Problemet er at den af en eller anden årsag ikke sender til email adresserne, og den echo'er heller ikke om det er lykkedes eller ej.

Her er mit script:
<?php
$content = $_POST['content'];
$subject = $_POST['subject'];
$filepath = $_POST['filepath'];
$startuser = $_POST['startuser'];

if($startuser == "")
    $startuser = 0;

$FileUpload = false;
$FullPath = "";
$BaseName = "";

if($filepath != "")
{
    $FileUpload = true;
    $FullPath = $filepath;
    $path_parts = pathinfo($filepath);
    $BaseName = $path_parts['basename'];
}
else
{
    $path_parts = pathinfo($_FILES['billede']['name']);
   
    $uploadfile = time() . "." . $path_parts['extension'];
    $BaseName = $path_parts['basename'];
   
    $path_parts = pathinfo($_SERVER['PHP_SELF']);
    $FullPath = "http://www." . $_SERVER['SERVER_NAME'] . $path_parts['dirname'] . "/billeder/" . $uploadfile;
   
    if (move_uploaded_file($_FILES['billede']['tmp_name'], $uploadfile))
    {
          rename($uploadfile, "billeder/" . $uploadfile);
        $FileUpload = true;
    }
}


include('../scripts/info.php');

$conn = mysql_connect($sqlhost, $sqluser, $sqlpass);
mysql_select_db($sqldb);
$oldContent = $content;
$resultat1 = mysql_query("SELECT * FROM ".$sqlmailtabel." ORDER BY 'id' ASC LIMIT $startuser, 25");

while ($raekke = mysql_fetch_array($resultat1)) {
        $navn = $raekke['navn'];
        $idnummer = $raekke['id'];       
        $email = $raekke['email'];
        $from = "didde_juul@hotmail.com";


        extract($raekke);
        $to = $email;
        $content = "Hello $navn\n\n\n".
                  "$oldContent \n\n".
                  ($FileUpload ? "\nAttached File: \n<a href=\"$FullPath\">$BaseName</a>" : "") .
                  "\n".
                  $from."\n".
                  "http://www.deedee-dk.com\n\n\n\n\n\n\n".
                  $delete_user_besked."\n".
                  "http://".$dinwebsite.$stitilfiler."/delete_user.php?id=".$idnummer;
        if(mail($to, $subject, $content,
              "From: $from\r\n"
              ."Reply-To: $from\r\n"
              ."X-Mailer: PHP/" . phpversion()))
                  {
                    echo "Mail afsendt med <u><b>succes</b></u> til: $navn med følgende emailadresse: $email<br>";
                }    else
                {
                    echo "Kunne ikke sende en mail til: $navn med følgende emailadresse: $email<br>";
                }
              flush();
}
echo '<form name="laaner_formular" method="post" action="send.php">'.
        '<input type="hidden" value="'.$oldContent.'" name="content">'.
        '<input type="hidden" value="'.$subject.'" name="subject">'.
        ($FileUpload ? '<input type="hidden" value="'.$FullPath.'" name="filepath">' : "") .
        '<input type="hidden" value="'. ($startuser + 25) .'" name="startuser">'.
        '<input type="submit" name="send" value="Send Til De Næste 25">'.
        '</form>';
?>

Jeg har nu siddet og kigget på det i et stykke tid, og kan ikke se hvad der er galt, så hvis der er nogle af jer eksperter som kan finde problemet, så må i meget gerne skrive :)

Per
Avatar billede tmi Nybegynder
02. juli 2007 - 20:13 #1
Kan det være fordi $sqlmailtabel ikke er defineret? Eller at der er en anden fejl i SQL-en? For så vil indholdet af while-lykken ikke blive kaldt!
Avatar billede Slettet bruger
02. juli 2007 - 20:17 #2
$sqlmailtabel skulle blive defineret i filen info.php, men jeg havde i denne fil kaldt det $sqlemailtabel, det er garanteret derfor. Det er det der med at se sig blind på det :) men tak for hjælpen, smid et svar
Avatar billede tmi Nybegynder
02. juli 2007 - 20:29 #3
Skulle det være en anden gang? ;-)
Avatar billede Slettet bruger
03. juli 2007 - 20:33 #4
Hej igen, har lige et tillægs spørgsmål:
Jeg testede scriptet og det vil kun sende til 125 email adresser (altså 5 tryk på "Send til de næste 25" knappen) men jeg har flere email adresser i men database.
Nogle der har et forslag til hvad det kan være, for hvis det virker på nogle af mail adresserne, så burde det vil virke på alle sammen ikk?
Kan det have noget at gøre med min hjemmeside udbyder? noget med at de lukker for send funktionen når man har sendt X-antal, en slags spam-agtig funktion?

Per
Avatar billede tmi Nybegynder
03. juli 2007 - 20:52 #5
Jeg mener at one.com fx har en masse restriktioner på emails. Der skal man fx sende fra sit eget domæne, og jeg mener også der er en grænse for volumen per tid. Så det kan sagtens passe. Hvis scriptet virker med de første 125 kan jeg ikke se at problemet skulle være en fejl i scriptet
Avatar billede Slettet bruger
03. juli 2007 - 20:57 #6
tænkte det fandme nok, det er netop hos one.com jeg har min hjemmeside :(
Men jeg sender fra mit eget domæne, er jeg da ret sikker på. alle scripts ligger da på mit domæne.
Har du prøvet at bypasse disse restriktioner, eller er det bare "bad luck"?
Avatar billede tmi Nybegynder
03. juli 2007 - 21:38 #7
der er ikke noget at gøre, jeg har min egen server nu, som jeg sender fra. Ellers så skriv udskriv emailsne på din skærm med ; i mellem og kopier dem ind i fx dit outlook som BCC. Så kan folk ikke se hinandens emails og så kan du sende dem på 1 gang
Avatar billede Slettet bruger
03. juli 2007 - 22:19 #8
crap, nå men tak for hjælpen
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