Kom ihåg mig?
Home Menu

Menu


skicka php massmejl

 
Ämnesverktyg Visningsalternativ
Oläst 2010-08-18, 10:08 #1
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
Question skicka php massmejl

Jag tänkte skicka iväg ett mejl till ca. 800 e-postadresser. Jag har skrivit en liten kodsnutt som ser till att skicka varje mejl separat:

$mejl[0] = [email protected]
$mejl[1] = [email protected]
$mejl[2] = [email protected]
...och så vidare till nr. 800...

for (i=0;i<=800;i++) {

$to = $mejl[$i];
$subject = "Hej";
$message = "Ett finfint meddelande";
$from = "[email protected]";
$headers = "From: $from";
mail($to,$subject,$message,$headers);

}

Det här borde väl vara ett säkert sätt att massmejla utan att bli svartlistad?
robincox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-18, 10:17 #2
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Ditt webbhotell har förmodligen en gräns på hur många mail man får skicka. Det webbhotell jag använder har en gräns på 700 mail per timma, oavsett hur de skickas. Skickas fler mail än detta så tror jag man blir svartlistad.

Sen bör du inte använda PHP:s mail()-funktion för att skicka många mail i en loop. Den öppnar och stänger anslutningen till mailservern för varje mail den skickar. Det är onödigt och tar extra prestanda och tid.

Använd hellre PEAR::mail, eller min favorit PHPMailer, där du kan skicka mail till många mottagare "separat" utan att koppla ner anslutningen för varje mail. Dessutom är PHPMailer otroligt enkel att använda. Man behöver inte tänka på headers osv. om man inte vill...
qson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-18, 10:18 #3
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
youheardit youheardit är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2008
Inlägg: 1 168
jag gjorde på samma sätt som dig fast med 1100 mailadresser och det gick utmärkt, rulla på! dock högre vet jag inte hur det kommer bli...
youheardit är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-18, 10:39 #4
JLEs avatar
JLE JLE är inte uppkopplad
Flitig postare
 
Reg.datum: Jul 2007
Inlägg: 382
JLE JLE är inte uppkopplad
Flitig postare
JLEs avatar
 
Reg.datum: Jul 2007
Inlägg: 382
Förmodligen kommer många mail inte att komma fram. Testa att göra ett utskick till ett Hotmail samt ett Gmail konto.

Läs sedan exempelvis http://www.wn.se/t36666-15-2.html
JLE är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-18, 11:09 #5
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
robincox robincox är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2008
Inlägg: 301
Citat:
Ursprungligen postat av qson Visa inlägg
Ditt webbhotell har förmodligen en gräns på hur många mail man får skicka. Det webbhotell jag använder har en gräns på 700 mail per timma, oavsett hur de skickas. Skickas fler mail än detta så tror jag man blir svartlistad.

Sen bör du inte använda PHP:s mail()-funktion för att skicka många mail i en loop. Den öppnar och stänger anslutningen till mailservern för varje mail den skickar. Det är onödigt och tar extra prestanda och tid.

Använd hellre PEAR::mail, eller min favorit PHPMailer, där du kan skicka mail till många mottagare "separat" utan att koppla ner anslutningen för varje mail. Dessutom är PHPMailer otroligt enkel att använda. Man behöver inte tänka på headers osv. om man inte vill...
Jag testade lite med phpMailer och det verkar funka. Bara en fråga, ska jag använda sendmail eller mail?

Senast redigerad av robincox den 2010-08-18 klockan 11:38
robincox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-18, 11:33 #6
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Enkelt exempel på att använda PHPMailer:
PHP-kod:
<?php

$mejl
[0] = '[email protected]';
$mejl[1] = '[email protected]';
$mejl[2] = '[email protected]';
/* ...och så vidare till nr. 800... */

require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();  // använd SMTP-server
$mail->Host     "smtp.example.com"// SMTP server

$mail->From     "[email protected]";     // Avsändar-adressen

foreach ($mejl as $mejladress) {
  
$mail->AddAddress($mejladress); // Mottagar-adressen
}

$mail->Subject  "Mitt första PHPMail";     // Rubriken
$mail->Body     "Ett trevligt massmail.";  // Meddelandet
$mail->WordWrap 50;       // Word-wrap, hur långa skall raderna vara

if(!$mail->Send()) {
  echo 
'Meddelandet skickades inte.';
  echo 
'Mailfel: ' $mail->ErrorInfo;
} else {
  echo 
'Meddelandet skickades';
}
?>
MEr info här:
http://phpmailer.worxware.com/index.php?pg=tutorial
qson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-18, 11:40 #7
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Citat:
Ursprungligen postat av qson Visa inlägg
Enkelt exempel på att använda PHPMailer:
...

MEr info här:
http://phpmailer.worxware.com/index.php?pg=tutorial
qson > Tror inte alla mottagare vill se varandras adresser.

PHP-kod:
<?php

$mejl
[0] = '[email protected]';
$mejl[1] = '[email protected]';
$mejl[2] = '[email protected]';
/* ...och så vidare till nr. 800... */

require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();  // använd SMTP-server
$mail->Host     "smtp.example.com"// SMTP server

$mail->From     "[email protected]";     // Avsändar-adressen
$mail->AddAddress('[email protected]');    // Mottagar-adressen

foreach ($mejl as $mejladress) {
  
$mail->AddBCC($mejladress);  // Mottagare
}

$mail->Subject  "Mitt första PHPMail";     // Rubriken
$mail->Body     "Ett trevligt massmail.";  // Meddelandet
$mail->WordWrap 50;       // Word-wrap, hur långa skall raderna vara

if(!$mail->Send()) {
  echo 
'Meddelandet skickades inte.';
  echo 
'Mailfel: ' $mail->ErrorInfo;
} else {
  echo 
'Meddelandet skickades';
}
?>

Senast redigerad av Jonas den 2010-08-18 klockan 11:40 Anledning: Korta ned citat
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-18, 11:46 #8
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Citat:
Ursprungligen postat av Jonas Visa inlägg
qson > Tror inte alla mottagare vill se varandras adresser.
Aha, i gamla versionen av phpmailer skickades ett mail per mottagare. Nu läggs tydligen alla adresser i to-fältet samtidigt.

Finns dock en inställning som skickar individuella mail:
PHP-kod:
$SingleTo      public      false      Provides the ability to have the TO field process individual emailsinstead of sending to entire TO addresses 
Här är uppdaterad kod:
PHP-kod:
<?php

$mejl
[0] = '[email protected]';
$mejl[1] = '[email protected]';
$mejl[2] = '[email protected]';
/* ...och så vidare till nr. 800... */

require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();  // använd SMTP-server
$mail->Host     "smtp.example.com"// SMTP server

$mail->From     "[email protected]";     // Avsändar-adressen

foreach ($mejl as $mejladress) {
  
$mail->AddAddress($mejladress); // Mottagar-adressen
}

$mail->Subject  "Mitt första PHPMail";     // Rubriken
$mail->Body     "Ett trevligt massmail.";  // Meddelandet
$mail->WordWrap 50;       // Word-wrap, hur långa skall raderna vara

$mail->SingleTo true// Se till att individuella mail skickas!

if(!$mail->Send()) {
  echo 
'Meddelandet skickades inte.';
  echo 
'Mailfel: ' $mail->ErrorInfo;
} else {
  echo 
'Meddelandet skickades';
}
?>
Jag gillar inte BCC, det står då en annan mottagare än sig själv, t.ex. "To: Undisclosed recipients"
qson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-18, 13:56 #9
abergmans avatar
abergman abergman är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Feb 2010
Inlägg: 762
abergman abergman är inte uppkopplad
Mycket flitig postare
abergmans avatar
 
Reg.datum: Feb 2010
Inlägg: 762
Citat:
Ursprungligen postat av robincox Visa inlägg
Jag tänkte skicka iväg ett mejl till ca. 800 e-postadresser. Jag har skrivit en liten kodsnutt som ser till att skicka varje mejl separat:

$mejl[0] = [email protected]
$mejl[1] = [email protected]
$mejl[2] = [email protected]
...och så vidare till nr. 800...

for (i=0;i<=800;i++) {

$to = $mejl[$i];
$subject = "Hej";
$message = "Ett finfint meddelande";
$from = "[email protected]";
$headers = "From: $from";
mail($to,$subject,$message,$headers);

}

Det här borde väl vara ett säkert sätt att massmejla utan att bli svartlistad?
Om spamfiltret på mottagarsidan ser att du skickar ut massor med mail med korta mellanrum så kommer de att grålista dig. Dessutom bör IPt du skickar från ha en PTR, samt att domänen bör ha SPF konfigurerat.

Jag rekomenderar att använda phplist, den sköter allt och lite till
abergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-19, 15:46 #10
studiox studiox är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2004
Inlägg: 1 356
studiox studiox är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2004
Inlägg: 1 356
Jag rekommenderar INGEN att skicka mail direkt från en "vanlig" webbserver, det är inte smart om man vill att mottagaren ska kunna läsa mailet.

Ditt webbhotell kan ju ha några synpunkter på det också

använd en extern tjänst istället. Fast om du inte vill betala något och typ skiter i om mottagaren får mailet då går det ju
studiox är inte uppkopplad   Svara med citatSvara med citat
Svara

Taggar
blacklist, mail, mail(), massmail, php


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 05:04.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017