Hejsa Jeg er igang med at lave en mailing list med en sqldatabase, som jeg har fundet herinde: http://www.phpuniverset.dk/show_source.phtml?script_id=43 Jeg har været igang med at rette det til og får følgende fejl: Selvom den siger at den har filføjet mailen, har den altså heller ikke gjort det men jeg ved ikke om det har noget med den følgende fejl, hjælp!!
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /customers/kaninburet.dk/kaninburet.dk/httpd.www/kaninburet/mail/mailliste.php on line 22 Din E-mail er blevet tilføjet
Her er mit mailliste.php script
<? $filename = "mailliste.php"; $sql_host = "localhost"; $sql_user = "xxx"; $sql_passwd = "xxx"; $db = "mailliste"; mysql_connect($sql_host,$sql_user,$sql_passwd); mysql_select_db($db); if (!$mode) { ?> <form action="<? print $filename; ?>?mode=on" method="post"> <input type="text" name="mail" size="30"> <SELECT name="valg"><option value="Tilmeld" selected>Tilmeld!<option value="Afmeld">Afmeld</select> <br><input type="submit" value="Submit"> </form> <? } if ($mode == "on") { if ($valg == "Tilmeld") { // $mail // On E-mail er der allerede $res = mysql_query("SELECT * FROM mailliste WHERE mail = '$mail'"); $antal = mysql_num_rows($res); if ($antal == "") { // $ip, $mail, $dato $ip = $REMOTE_ADDR; $tid = date("Y-m-d H:i:s"); mysql_query("INSERT INTO mailliste (id,ip,mail,tid) VALUES ('','$ip','$mail','$tid')"); print "Din E-mail er blevet tilføjet"; } else { print "E-mail adressen er allerede tilføjet"; } } // End of tilmeld if ($valg == "Afmeld") { mysql_query("DELETE FROM mailliste WHERE mail = '$mail'"); print "E-mail adresse afmeldt"; } } // End of valg. ?>
CREATE TABLE mailliste ( id int(11) NOT NULL auto_increment, mail varchar(120) default NULL, ip varchar(20) default NULL, tid varchar(20) default NULL, PRIMARY KEY (id), KEY id (id) ) TYPE=MyISAM;
Nu skriver den det det er altså det rigtige jeg skriver! det er det samme som jeg bruger til min gæstebog!!
Nu skriver den det her Access denied for user: 'kaninburet_dk@localhost' to database 'mailliste' skal det være kaninburet.dk istedetfor kaninburet_dk det jeg nemlig ikke?? eller hvad kunne det ellers være??
Jeg fandt ud af det det var databasen det skulles rettes til kaninburet_dk
Og nu virker den del fint, men nu får 2 mere fejl, når jeg prøver at sende nyhedsmail ud. så skriver den følgende:
Warning: set_time_limit(): Cannot set time limit in safe mode in /customers/kaninburet.dk/kaninburet.dk/httpd.www/kaninburet/mail/sendmail.php on line 63
Warning: set_time_limit(): Cannot set time limit in safe mode in /customers/kaninburet.dk/kaninburet.dk/httpd.www/kaninburet/mail/sendmail.php on line 68
Ja, så kan du ikke sætte timelimit. Det er en meget rimelig ting at have på et webhotel, så du ikke generer de andre kunder mere end højst nødvendigt. Prøv at undlade den, og se om du kan nå at sende dine mails alligevel. Ellers må du dele listen op i flere dele og sende dem hver for sig.
Og så er det iøvrigt lidt naturstridigt at lade en webside sende en masse mails på een gang. Det plejer man at bruge specialiserede programmer til. Men er der ikke så mange, så går det jo nok.
Jeg fik gost en mail, selvom siden melder fejl. Skal jeg bare ignorer de fejl??
Det lidt mere underlige at den mail jeg får ser lidt sjov ud, når jeg har defineret i send afsender osv. så får jeg følgende $domainnavn og $mailemne had hvor jeg rette det henne ??
fordi jeg ikke helt ved hvor jeg ellers ændre det? snøft :-( Jeg er ikke særlig god til programmere, men troede det var her man ville erklærer variablen, sådan at man fik den rigtige afsender, mail, og domainnavn ud.
Men det kunne vil snart være en god ide lære at begynde på at programmer php, i stedet at låne en masse scripts, og så øger det også ens kunnen. Men jeg troede egentlige ikke at det var så omfattende med newsletter i første omgang. I det mange ligger scripts ud, og siger at de er lette at banke op ens side, hvilket jeg ikke er enige i.
Nåh, du ved ikke hvor det er? Jamen det er jo det jeg siger. Du har $-variabler i '..'-strenge, og det har du kun eet sted, nemlig der hvor du kalder mail(...). Og det er grunden til du får de "mærkelige" mails ;) Du skal bare læse hvad jeg skriver...
Nu virker det hele, sådan da!! Tusinde tak skal du have! domainnavn skulle ændres til afsendernavn, og så kan jeg ikke forstå at jeg ikke må bruge @ i afsendermail øverst i sendmail.php
Den skal vel ikke sende til en afsender men til en modtager ?? Og så sender den vel kun til dem i databasen. Og så giver det ingen mening at skrive, som du anførte før $afsendernavn = Pernille; En tekst skal altid omgives af '..' eller "...": $afsendernavn = "Pernille"; Og ingen kan hjælpe dig med en bemærkning som "jeg ikke må bruge @ i afsendermail". Skriv den kode, der ikke virker, så vi kan se det.
Hvordan kan du sige at "det er ligesom om at den kun sender til en modtager" ? Enten så sender den til dem i din database, eller også gør den vel ikke?! Og hvor mange modtagere har du i din database?
Nej det er rigtigt! Undskyld men troede lige at det var noget med tiden. Den bliver slet ikke sendt ud nu, da der er kommet en til mere i databasen ialt 2 er der i databasen! Æv, så meget for alt det bøvl. Men kunne man sende en af gangen eller hvad det du snakkede om??
Det kan sagtens bruges, for det er der tonsvis af andre sider der gør (moi inklusive), men hvis du gør det forkert eller din host ikke tillader det, så kan det selvf. ikke. Og var "Nej" svar på mit spørgsmål?! Hvis du ikke hjælper os, så kan vi heller ikke hjælpe dig. "Nej" som svar, kan jeg ca. bruge til hest. Du må jo så korrigere mig så jeg ved hvad dit problem er...
Okay, jeg troede et nej var nok. Undskyld!! Jeg prøver lige igen. Lige med at tilmelde sig til nyhedsbrev fungere sådan ok, og sende ud til en modtager. Jeg tilmeldte så en ny afsender til databasen. Og det medførte at den ikke sende ud til flere end 1 modtager. ÆV! Så hvad gør jeg så nu?? Jeg bruger iøvrigt b-one.
Der er 2 i databasen, og det her mener jeg med "fire dele", du skrev " Kommentar: erikjacobsen 19/07-2005 13:15:26 Ja, så kan du ikke sætte timelimit. Det er en meget rimelig ting at have på et webhotel, så du ikke generer de andre kunder mere end højst nødvendigt. Prøv at undlade den, og se om du kan nå at sende dine mails alligevel. Ellers må du dele listen op i flere dele og sende dem hver for sig.
Og så er det iøvrigt lidt naturstridigt at lade en webside sende en masse mails på een gang. Det plejer man at bruge specialiserede programmer til. Men er der ikke så mange, så går det jo nok. "
Du skal som udgangspunkt gøre som du gør. Det plejer at virke. Men der er jo noget galt, men måske kan vi finde ud af det hvis du svarer på spørgesmålene.
Ja det gør der sandelig også, UNDSKYLD. Jeg tror snart at jeg skal til at sove! HEHE de eneste 2 der er i databasen er dem som jeg har tilmeldt med det tilrettede script. Jeg har ikke selv indtastede dem i databasen, men jeg har sendt dem.
Er der 2 i databasen, eller tror du, at du har indsat to i databasen? Det du skriver er at du har tilmeldt 2 via dit tilmeldingsscript. Men jeg spørger om der er 2 i databasen. Er der det?
Og så må jeg spørge igen: Har du set at de er i tabellen i databasen, eller er det fordi du har tilmeldt de 2, og tror de er i tabellen i databasen. Der er ingen grund til at skrive emailadresser på eksperten.dk - du får blot mere spam-mail. Og du skal sørge for at linket til din sendmail.php bliver ændret, eller bliver beskyttet af password, så andre i fremtiden ikke kan bruge den.
Hvis begge er i databasen, så kan du 1) Udskrive $row['mail'] i din while-løkke, så du kan se at du kommer forbi alle poster. 2) Tjek evt at det er de rigtige parametre til $mail->send(...) funktionen.
og det er de eneste to jeg har tilmeldt med tilmeldingscriptet. Det med sikkerheden skal nok sørge for bagefter. Lige nu, vil jeg bare gerne have det til at virke!!
Jeg synes at det er lidt svært det her, jeg synes det ser fornuftigt ud! Men hvis det er script, som jeg har downloaded, så står jeg også med fejlsøgning selv, hvilket jeg ikke er istand til grundet min kunnen i php sql. Jeg synes det er spændende, men jeg kan ikke rette i noget, hvis jeg ikke kan se nogen fejl. Hvis i synes jeg har haft nok chancer, og hvis I ikke gider mere, så må det jo være det. Og så må jeg finde på noget andet. Jeg havde ikke den fjerneste anelse om at det ville være så svært for en nybegynder. Undskyld!!
Emails kan jo være lang tid undervejs - der er absolut ingen garanti for leveringstid. Hvad har du skrevet i forbindelse med den testudskrift jeg foreslog?
Undskyld jeg ikke har svaret i noget tid, men havde lige et burn off med mit grafikkort på den stationære. Ja, jeg ved godt emails kan være langtid undervejs. Men det er da mærkeligt, at jeg ikke får nogen, når den har sendt 5 til min kæreste, hmm. Jeg ved ikke, hvordan man laver sådan en testudskrift, med hensyn til de 2 forslag du foreslog. Det var defor, jeg skrev at det var lidt svært det her!!
Hvordan kan du se det?? når den ikke udskriver noget. Nå, men det jeg gjorde var det her:
$res = mysql_query("SELECT * FROM mailliste");
while ($row = mysql_fetch_array($res)) { set_time_limit(0); // Timelimit 2 seconds for sending each mail echo $mail->send($row['mail'], $row ['mail'], '$domainnavn', '$afsendermail', '$mailemne '); sleep(1); flush(); } set_time_limit(0); // Timelimit to finish script
Men den kan vil hellere ikke udskrive fejl, hvis det er iorden, at skriptet kun må sende ud til en modtager. hmm, hvilket minder mig om løkker. Kan man ikke sætte den til at tælle en op for hvert navn i databasen, eller jeg er på vildspor nu??
Nu sender den slet ikke ud til ud nogen!! Jeg fandt 2 adresser mere: pernillekressel@yahoo.dkmborchmann@vip.cybercity.dkpernille_kressel@hotmail.commborchmann@hotmail.com ÆV, hvad gør jeg nu?? Så kan det ikke lade sig gøre med det script??
Så vidt jeg husker har B-one nogen "problemer" med mail(); Så er det bare om jeg husker korrekt. Men du kunne jo kontakte dem og høre, om de har hørt om problemer med PHP's send()-funktion.
Kan det være, at den ikke for lov til sende fra konfigureret smtp konto og at jeg skal ændre den til mailout.b-one.net men så er det bare lige med hvor? Eller prøver jeg lige at skrive til dem.
Kan jeg sende mails fra min webside? Hvis du ønsker at sende e-mails fra din web-side via et script kan dette naturligvis godt lade sig gøre. Her skal du bruge vores interne smtp-serveradresse: mailout.b-one.net.
/*************************************** ** Use this method to deliver using direct ** smtp connection. Relies upon Manuel Lemos' ** smtp mail delivery class available at: ** http://phpclasses.upperdesign.com ** ** void smtp_send( string *Name* of smtp object, ** string From address, ** array To addresses, ** array Extra headers) ***************************************/
function smtp_send(&$smtp_obj, $from_addr, $to_addr, $xtra_headers = ''){
// the following: sendmessage(string from address, array to addresses, array headers, string body) $smtp_obj->sendmessage($from_addr, $to_addr, $headers, $this->mime); }
/*************************************** ** Use this method to return the email ** in message/rfc822 format. Useful for ** adding an email to another email as ** an attachment. there's a commented ** out example in example.php. ** ** string get_rfc822(string To name, ** string To email, ** string From name, ** string From email, ** [string Subject, ** string Extra headers]) ***************************************/
Alle andre scripts gør det jo på samme måde. Og der er ikke noget i scriptet som sådan, der er forkerte. Eneste problem, som tidligere anført er, om dine mails opfattes som spam hos modtageren.
Nu er det jo forsåvidt dig, der har problemet, og dig der kan afprøve dit script. Vi andre kan komme med forslag, som du kan afprøve eller kommentere. Og der er mange ting du kan fortælle os, som du ikke fortæller os. Du har tidligere fået een mail igennem, og også pludselig en masse mails til en yahoo-konto, men jeg kan ikke se præcist hvad der sker hvornår. Jeg har bedt dig kigge i SPAM-folderen (eller hvad den hedder), men du siger ikke om du har gjort det, eller om du faktisk har fundet noget.
Du er også velkommen til at tilføje den emailadresse, der står på mit minisite, så jeg kan følge med i hvad der sker.
Lige nu med mine fire modtager sker der ingenting sender man send mail dem ud til modtagerne hverken i deres indbakkke, papirkurv, masseforsendelse, bulk osv.
Jeg ved ikke, hvordan jeg bedre skal udtrykke mig end, at der sker ingenting, når jeg trykker på send knappen. Det eneste den skriver til mig, er den echo sætning vi indsatte, som skriver hvor mailsene er blevet sendt hen, hvilket de ikke er!
Det sjove er bare, at den godt sende ud til en modtager, hvis der er henholdvis en eller to modtager i databasen. Hvis der er to i databasen, så sender den ud til den har det sidste ID nummer i databasen. Hvis der er tre og derover, kan man trykke nok så mange gange på send knappen, og den sender ikke noget som helst ud. Ergó er der nok en spææring et eller andet sted i det her forløb, som jeg ikke kan finde ud af. Hvad enten det er scriptet eller udbyderne kan jeg ikke finde ud af.
Hvilken kode spørger du efter: vise jer koden men der er tre filer. der er sendmail.php (sender post til modtager), mailliste.php (tilføj/fjern modtager) ,class_html_mime_mail.inc (funktioner)
while ($row = mysql_fetch_array($res)) { // set_time_limit(); // Timelimit 2 seconds for sending each mail $mail->send($row['mail'],$afsendernavn,$afsendermail,$mailemne); echo $row['mail'];
sleep(1); flush(); } //set_time_limit(); // Timelimit to finish script
echo "<p> </p> <p> </p> <p> </p> <p align=\"center\"> <font color=\"#00FFFF\" size=\"5\" face=\"Arial, Helvetica, sans-serif\"><strong><font color=\"#006600\"> News er nu sendt!</font></strong></font></a></p>"; } ?>
Og så kan du se hvorfor vi ikke har kunnet hjælpe dig: vi er ikke clair-voyante, vi kan kun hjælpe med det vi kan se, og det du fortæller. Du spilder selvfølgelig mest din egen tid...
Okay efter jeg har lavet om med den sætning virker det lidt bedre. Nu får pernillekressel@yahoo.dk newsletter, men ikke alle de andre, heller ikke i deres bulk eller masseforsendelse bakke. Så det er ligesom, at den ikke kommer videre fra pernille@yahoo.dk til mborchmann@vip.cybercity.dk osv.
Jeg spilder ikke nogen tid, jeg har endda ferie. Jeg mere jeres tid, men jeg har før sagt, at hvis jeg tager for meget af jeres tid, så er det ok for mig. Men jeg synes nu at der lidt synd at stoppe her.
Ok, så. Du har stadig kun prøvet de 4 mailadresser? Du har ikke prøvet at fjerne den første, der virker, for at se om den kun sender til den første? Der er masser du kan prøve for at indkredse problemet.
Nu har jeg prøvet at slette den første, hvorefter den sendte til den næste i rækken, og ikke dem der lå bagefter. Det vil sige at der igen kun kom en ud. Derefter prøvede jeg tømme databasen, hvis der nu var gået et eller andet galt! Så prøvede jeg at sætte dem allesammen ind en af gangen, og alle fire modtagere mod fint et nyhedsbrev i deres indbakke. Min konklusion nu er scriptet ikke kan sende ud til flere en af gangen eller b-one sætter en spærring som ikke fortæller mig. Hvad siger I?
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.