Fatal error: Call to undefined function: smtp_client() in /customers/mctorsdagsklubben.dk/mctorsdagsklubben.dk/httpd.www/medlem/sendcommail2.php on line 109
Warning: fsockopen(): unable to connect to localhost:25 in /customers/mctorsdagsklubben.dk/mctorsdagsklubben.dk/httpd.www/medlem/sendcommail2.php on line 24
Men det har nok noget at gøre med, at de kører på et unoeuro webhotel.
Det vil jeg tro. Jeg tvivler på at de kører en mailserver på samtlige servere.
Hvis de ikke har firewall som beskytter for udgående connections (og det har de fleste webhoteller), så kan du benytte en anden mailserver i stedet. Men jeg tror ikke du skal sætte forhåbningerne for højt :o|
Normalt er det ikke nødvendigt (eller hensigtsmæssigt) at rette i selve klassen. Constructoren tager 1 parameter, som er mailserverens adresse. Hvis ikke den er udfyldt vil den bruge localhost.
Vi er dog nødt til at rette lidt alligevel, da vi ikke skal bruge standard porten (25).
Ret starten af klassen så den kommer til at se sådan ud: <snip> class smtp_client { var $connection; var $server; var $port; //-- Indsat variabel som indeholder portnummeret var $elog_fp; var $log_file='./smtp_client.log'; var $do_log=true;
// default constructor function smtp_client($server='', $port = 25) { //-- Indsat parameter for port if (!$server) $this->server="localhost"; else $this->server=$server;
$this->port = $port; //-- Gem porten
$this->connection = fsockopen($this->server, $this->port); //-- Brug det gemte portnummer if ($this->connection <= 0) return 0; </snip>
Desuden skal du rette linien $smtp=new smtp_client(); til $smtp=new smtp_client('customer-smtp.b-one.net', 2525);
Den fejler men henvisning til de linier hvor der står eks. $subjectrn. Alle linier der fejler er der en variable med rn tilføjet. Skal jeg bare slette dette rn eller hvad gør det godt for?
Jeg har fundet et par af de linier hvor der er variabler der slutter med rn. Jeg er rimelig sikker på at det skyldes at der er blevet fjernet nogle backslashes.
De steder hvor den laver noget med $xxxrn skal du lige erstatte rn med \r\n (altså linieskift).
Nu sender den mailsne, men den er umanerlig længe om det og ender ud i en Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, support@b-one.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Fejlmeddelelsen skyldes at scriptet ikke når at blive færdigt indenfor de 30 sekunder som normalt er timelimit. Det vil sige at scriptet bliver "slagtet" af serveren.
Jeg kunne godt forestille mig at det kunne tage noget tid hvis du har 1 million adresser i din database. Har du prøvet at nøjes med en enkelt mail eller 2 til at starte med?
Jeg vil tro at grunden til at det tager så lang tid, skyldes at mailserveren indsætter en lille venteperiode imellem hver mail. Den slags er meget normalt, da det gør det lidt kedeligt at sende en million spam mails hvis man skal vente 1-2 sekunder mellem hver mail.
Hvis hver mail skal være ens (altså ikke indeholde f.eks. profilnavn eller sådan noget), kan du måske benytte dig af Bcc headeren. Den svarer til Cc headeren, men modtagerne af mailen kan ikke se hvem den ellers er sendt til. På den måde kan hver mail blive sendt til f.eks. 10 forskellige bruger. Så skal du kun have 1/10 så mange mails i kø på serveren.
...Og nu håber jeg forresten ikke at du bruger den rigtige database til at teste med. Det kan godt være at dine brugere vil blive en anelse irriteret over at modtage alle dine testmails ;o)
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.