Avatar billede -kick- Nybegynder
29. december 2004 - 05:55 Der er 2 kommentarer og
2 løsninger

sende emails i php fra nyhedsystem.

Hej, jeg har lavet et script hvor folk kan tilmelde / fravælge nyhedsbrev, men hvordan laver man sådan at den sender en email

til ALLE emails i databasen? :-s
Det har jeg spekuleret meget over!
Avatar billede neess Nybegynder
29. december 2004 - 06:32 #1
du løber tabellen igennem og sender en mail til dem, eller sætter en tekst streng sammen og sætter alle sammen ind i bcc feltet og sender en mails som derved ryger ud til alle. du kan evt bruge denne mail function der kan du bruge html tags.

/*
$TEXT="This is the first test\n in text format\n.";
$HTML="<font color=red>This is the first test in html format.</font>";

SendMail(
  "my@address.com","afsender navn",        //sender
  "modtag@mail","Recipients Name",    //recipient
  "Testmail",                              //subject
  $TEXT,$HTML);                      //body and attachment(s)
*/ 
function SendMail($From,$FromName,$To,$ToName,$Subject,$Text,$Html){
$OB="----=_OuterBoundary_000";
$IB="----=_InnerBoundery_001";
$Html=$Html?$Html:preg_replace("/\n/","{br}",$Text)
  or die("neither text nor html part present.");
$Text=$Text?$Text:"Sorry, but you need an html mailer to read this mail.";
$From or die("sender address missing");
$To or die("recipient address missing");
 
$headers ="MIME-Version: 1.0\r\n";
$headers.="From: ".$FromName." <".$From.">\n";
$headers.="To: ".$ToName." <".$To.">\n";
$headers.="Reply-To: ".$FromName." <".$From.">\n";
$headers.="X-Priority: 1\n";
$headers.="X-MSMail-Priority: High\n";
$headers.="X-Mailer: My PHP Mailer\n";
$headers.="Content-Type: multipart/mixed;\n\tboundary=\"".$OB."\"\n";

//Messages start with text/html alternatives in OB
$Msg ="This is a multi-part message in MIME format.\n";
$Msg.="\n--".$OB."\n";
$Msg.="Content-Type: multipart/alternative;\n\tboundary=\"".$IB."\"\n\n";

//plaintext section
$Msg.="\n--".$IB."\n";
$Msg.="Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n";
$Msg.="Content-Transfer-Encoding: quoted-printable\n\n";
// plaintext goes here
$Msg.=$Text."\n\n";

// html section
$Msg.="\n--".$IB."\n";
$Msg.="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n";
$Msg.="Content-Transfer-Encoding: base64\n\n";
// html goes here
$Msg.=chunk_split(base64_encode($Html))."\n\n";

// end of IB
$Msg.="\n--".$IB."--\n";

// attachments
if($AttmFiles){
  foreach($AttmFiles as $AttmFile){
  $patharray = explode ("/", $AttmFile);
  $FileName=$patharray[count($patharray)-1];
  $Msg.= "\n--".$OB."\n";
  $Msg.="Content-Type: application/octetstream;\n\tname=\"".$FileName."\"\n";
  $Msg.="Content-Transfer-Encoding: base64\n";
  $Msg.="Content-Disposition: attachment;\n\tfilename=\"".$FileName."\"\n\n";
         
  $Msg.=$FileContent;
  $Msg.="\n\n";
  }
}
 
//message ends
$Msg.="\n--".$OB."--\n";
mail($To,$Subject,$Msg,$headers);   
//syslog(LOG_INFO,"Mail: Message sent to $ToName <$To>");
}

?>
Avatar billede -kick- Nybegynder
29. december 2004 - 15:45 #2
Kan du ikke lave sådan den først henter
$tekst = $_REQUEST[tekst]

også den bagefter sender til alle i databasen "nyhedsbrev" med emailen "$row[email]"
Avatar billede -kick- Nybegynder
29. december 2004 - 21:32 #3
Lavede denne:

<?php
if(isset($_POST['submit'])) {

include("db.php");

$resultat = mysql_query('select * from nyhedsbrev');
while ($raekke = mysql_fetch_array($resultat)) {

if(!isset($taeller)) {
$taeller = 1;
$adresser = $raekke['email'];
}
else { $taeller = $taeller+1;
$adresser .= "," . $raekke['email'];
}
}

$tekst = $_POST['tekst'];
$subject = "Nyhedsbrev fra gfdfgdgdfgdfg";
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From: dfgdgdgdfg <dgdfgfgdg@dfsfsdf.dk>";
mail($adresser, $subject, $tekst, $headers);

echo "Mail sendt!!";
}
?>
Avatar billede neess Nybegynder
30. december 2004 - 08:05 #4
Jo du kunne nemt have sat min ind i din while løkke.
Du kunne bare have smidt
SendMail(
  "my@address.com","afsender navn",        //sender
  "modtag@mail","Recipients Name",    //recipient
  "Testmail",                              //subject
  $TEXT,$HTML);                      //body and attachment(s)
ind istedet for din mail()
Så kan du nemlig bruge html tags, hvis du ville udforme en pæn mail
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