Gå til innhold

PHP script som sender email


Anbefalte innlegg

Har en liten e-mail liste. denne vil jeg gjerne lage et lite styrings-script til, i PHP. Dette scriptet skal være meget enkelt, dvs ett felt som man skriver inn e-mail adressen sin, og en meny man velger ønsket handling.

 

Dvs: Skriver man inn emailen [email protected] og velger JOIN i menyen, så sendes en mail FRA [email protected] TIL [email protected], med kun JOIN i emnefeltet.

 

Noen som kan hjelpe meg med dette? Det må da finnes noen sider som forteller hvordan man lager et så enkelt script i PHP.

 

Har prøvd å søke i dokumentasjonen til PHP.net, men fant ikke så veldig mue som kunne hjelpe meg.

Lenke til kommentar
Videoannonse
Annonse

Har nå kikket litt på de forslagene som er over, og har laget meg følgende script:

 

<?php



@extract($_POST);



$Liste = stripslashes($Liste);

$Navn = stripslashes($Navn);

$Email = stripslashes($Email);

$Kommando = stripslashes($Kommando);

$Tekst = stripslashes($Tekst);



mail($Liste,$Kommando,$Tekst,"From: $Navn <$Email>");

echo "Din forespørsel er nå sendt. Merk at det kan ta opp til 5 minutter før den blir behandlet.";



?>

 

Dette funker bra. Hvis dere har tips til forbedringer, må dere gjerne poste de her.

 

Takk for all hjelp!

Lenke til kommentar

Når jeg lastet scriptet over på webserveren fikk jeg følgende feilmelding når jeg skulle teste det:

 

Warning: Failed to Receive in E:inetpubwwwrootgrimstad.seilforeningMailinglistermailscript.php on line 11

Din forespørsel er nå sendt. Merk at det kan ta opp til 5 minutter før den blir behandlet.PHP Warning: Failed to Receive in E:inetpubwwwrootgrimstad.seilforeningMailinglistermailscript.php on line 11

 

Linje 11 er denne:

 

mail($Liste,$Kommando,$Tekst,"From: $Navn <$Email>");

 

Scriptet funker fint hos meg lokalt (IIS 5.1 og PHP 4.3.0). Tror hosten også kjører IIS, men er ikke sikker. Hvilken versjon av PHP de kjører vet jeg ikke.

 

Hva er galt?

Lenke til kommentar
Når jeg lastet scriptet over på webserveren fikk jeg følgende feilmelding når jeg skulle teste det:

 

Warning: Failed to Receive in E:inetpubwwwrootgrimstad.seilforeningMailinglistermailscript.php on line 11

Din forespørsel er nå sendt. Merk at det kan ta opp til 5 minutter før den blir behandlet.PHP Warning: Failed to Receive in E:inetpubwwwrootgrimstad.seilforeningMailinglistermailscript.php on line 11

 

Linje 11 er denne:

 

mail($Liste,$Kommando,$Tekst,"From: $Navn <$Email>");

 

Scriptet funker fint hos meg lokalt (IIS 5.1 og PHP 4.3.0). Tror hosten også kjører IIS, men er ikke sikker. Hvilken versjon av PHP de kjører vet jeg ikke.

 

Hva er galt?

 

Blir eposten sendt på tross av warning'en? Hvilke verdier har parameterene?

 

Du kan finne php-versjon ved å kjøre et phpskript som inneholder

phpinfo()

 

 

Jeg vet jeg hadde problemer med å sende email hvis retur-path ikke var gitt. Prøv å legge til returpath:

 

mail($Liste,$Kommando,$Tekst,"From: $Navn <$Email>","[email protected]");

 

Der siste argumentet angir hvor eposten skal returneres hvis den ikke kan leveres.

Lenke til kommentar

Nei, det løste ikke problemet. Mailen blir ikke sendt når den feilmeldingen kommer opp. Det er PHP 4.2.1 som kjører på serveren.

 

Hva er dette for noe tull? Har søkt og lett høyt og lavt men kan ikke finne noen løsning.

Lenke til kommentar

Har nå oppdatert scriptet litt, med nien if'er også:

 

<?php



@extract($_POST);



$Liste = stripslashes($Liste);

$Navn = stripslashes($Navn);

$Email = stripslashes($Email);

$Kommando = stripslashes($Kommando);



if (!$Email)

{

echo ("Du må fylle inn din e-mail adresse.");

}

else

{

if (!$Navn)

{

echo ("Du må fylle inn navnet ditt.");

}

else

{



$Message = "Automatisk generert styringsmail";

$Headers = "From: $Navn <$Email>";

mail( $Liste, $Kommando, $Message, $Headers );



echo ("Kommandoen er nå sendt. Merk at det kan ta opp til 5 minutter før den trer i kraft.");



}

}

?>

 

Men fremdeles funker det ikke på PHP 4.2.1...

 

Har postet samme problemstilling på en PHP mailingliste. Hvis jeg får en løsning, skal jeg poste den her.

Lenke til kommentar

prøv sånn her:


<?php



@extract($_POST);



$Liste = stripslashes($_REQUEST['Liste']);

$Navn = stripslashes($_REQUEST['Navn']);

$Email = stripslashes($_REQUEST['Email']);

$Kommando = stripslashes($_REQUEST['Kommando']);



if (!$Email)

{

echo ("Du må fylle inn din e-mail adresse.");

}

else

{

if (!$Navn)

{

echo ("Du må fylle inn navnet ditt.");

}

else

{



$Message = "Automatisk generert styringsmail";

$Headers = "From: $Navn <$Email>";

mail( $Liste, $Kommando, $Message, $Headers );



echo ("Kommandoen er nå sendt. Merk at det kan ta opp til 5 minutter før den trer i kraft.");



}

}

?>

 

ser ut for meg ihvertfall som problemet ditt var at "register_globals = off" i php4

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...