Avatar billede giang Nybegynder
31. oktober 2004 - 19:51 Der er 12 kommentarer

Send mail via SMTP

Jeg mangler et simpelt PHP script til afsendelse af mails via SMTP.

På nuværende tidspunkt bruger jeg den indbyggede mail(); funktion i PHP, når jeg udsender nyhedsbrev.
Men det ser ud til at den ikke sender nyhedsbrevet til alle modtagerne. Jeg har hørt at SMTP skulle være mere stabilt.

Hvordan gør jeg?
Avatar billede coderdk Praktikant
31. oktober 2004 - 20:23 #1
Avatar billede arne_v Ekspert
31. oktober 2004 - 20:24 #2
mail() bruger SMTP så ......
Avatar billede coderdk Praktikant
31. oktober 2004 - 20:28 #3
arne_v, kun indirekte - phpmailer kan sende direkte vha SMTP, mail() bruger systemets sendmail...
Avatar billede arne_v Ekspert
31. oktober 2004 - 20:36 #4
Af nysggerighed: hvad gør mail() på Windows ?

Og jeg kan stadigvæk ikke se hvorfor det skulle være mere stabilt !
Avatar billede coderdk Praktikant
31. oktober 2004 - 20:41 #5
fra http://dk2.php.net/manual/en/function.mail.php

" The Windows implementation of mail() differs in many ways from the Unix implementation. First, it doesn't use a local binary for composing messages but only operates on direct sockets which means a MTA is needed listening on a network socket (which can either on the localhost or a remote machine). Second, the custom headers like From:, Cc:, Bcc: and Date: are not interpreted by the MTA  in the first place, but are parsed by PHP. PHP < 4.3 only supported the Cc:  header element (and was case-sensitive). PHP >= 4.3 supports all the mentioned header elements and is no longer case-sensitive."

Tjah, jeg tror nu heller ikke det er mere ...stabilt... Snarere tværtimod, da jeg mener at på de fleste platforme bliver mailen injected i en kø til aflevering - men jeg er ikke 100% sikker ;)
På den anden side springer du så dét led over, og leverer direkte til en SMTP-server som så selv lægger det i kø til aflevering...
Avatar billede giang Nybegynder
01. november 2004 - 12:47 #6
jeg har allerede kigget lidt på phpmailer, men kræver det ikke at man har adgang til serverens php.ini fil?
Avatar billede coderdk Praktikant
01. november 2004 - 12:55 #7
Nej, det er slet ikke nødvendigt - Så længe du kan smide den et sted hvor du kan require/include den... Den skal også bare have adgang til sit plugin-bibliotek, og det kan du få den til med: $mail->PluginDir = "/path/to/phpmailer/dir";
Avatar billede giang Nybegynder
01. november 2004 - 13:02 #8
Ok...forstår ikke helt...kan du forklare lidt nærmere?

Hvis jeg placerer phpmailer på www.mitsite.dk/phpmailer, hvordan skal mit mail script så se ud?
Avatar billede coderdk Praktikant
01. november 2004 - 13:18 #9
Nu bruger jeg den ikke selv, men noget i stil med:

<?php

  require("phpmailer/class.phpmailer.php");
  $mail = new PHPMailer();
  $mail->PluginDir = realpath( "." ) . "/phpmailer";
  $mail->IsSMTP(); // telling the class to use SMTP
  $mail->Host = "smtp.tele.dk"; // SMTP server
  $mail->From = "hest@tdc.dk";
  $mail->AddAddress("giang@tdc.dk");
  $mail->Subject = "test";
  $mail->Body = "test fra phpmailer...\njep.";
  if(!$mail->Send())
  {
    echo "Æv, kunne ikke sende, fejlen var: " . $mail->ErrorInfo;
  }
  else
  {
    echo "Mailen blev sendt!";
  }

?>

Altså:

  $mail->PluginDir = realpath( "." ) . "/phpmailer";

eller bare

  $mail->PluginDir = "phpmailer";

Så længe at phpmailer kan finde sig selv ;)
Avatar billede giang Nybegynder
16. november 2004 - 18:08 #10
Nu har jeg prøvet phpmailer og det virker fint når der kun sendes nogle få mails af gangen, men når der sendes mange (tusindvis), så tager det meget lang tid (timevis).
Jeg går ud fra at det er fordi at scriptet kører phpmailer scriptet igennem for hver eneste mail der sendes.
Er det ikke muligt at lave script, der ikke er så tungt som phpmailer?
Avatar billede coderdk Praktikant
16. november 2004 - 18:11 #11
Det ved jeg desværre ikke...
Avatar billede arne_v Ekspert
16. november 2004 - 20:21 #12
Hvis du kan rette koden, så den sender til f.eks. 100 af gangen med BCC, så
burde det gå noget hurtigere.
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