Avatar billede bennybangkarl Nybegynder
19. januar 2007 - 16:30 Der er 18 kommentarer og
1 løsning

Sende .php-side som mail

Hey!

Jeg har siddet og tumlet lidt med det her, men det virker sq ikke.

Hvad skal jeg gøre, hvis filen "message.php" skal kunne loades ind i body-delen af mail()-funktionen? Jeg har prøver lidt forskelligt, men oftest udskriver den bare message.php på siden, hvor mail kaldes men uden at skrive noget som helst i mailen, der bliver sendt frem.

Er der én med et løsningsforslag?

Mvh. Benjamin
Avatar billede learner Praktikant
19. januar 2007 - 16:56 #1
smid lidt af dit kode...
Specielt deromkring mail(.....)
Avatar billede bennybangkarl Nybegynder
19. januar 2007 - 17:03 #2
Egentligt har jeg ikke rigtig skrevet noget specielt. Har prøvet
$message = include "---.php";
mail("minmail@jkfljf.dk","emnet hvad det så end måtte være",$message,"From: fraadresse");

Har også prøver at bruge file, file_get_contents og et par stykker mere. Problemet er dels, at mailen skal sendes i html-format, så det ser pænt ud hos modtageren og dels, at php-siden skal afvikles, FØR den afsendes, da der skal hentes nogle ting fra min db og sættes afhængig af det id, som brugeren, der sender, har.

Håber, det var nogenlunde klart.
Avatar billede coderdk Praktikant
19. januar 2007 - 17:21 #3
Prøv:

ob_start();
include("message.php");
$msg = ob_get_contents();
ob_end_clean();
mail("dinmail@ditsite.dk","Message.php",$msg);
Avatar billede learner Praktikant
19. januar 2007 - 17:51 #4
jeg tror ik du skal bruge include() men måske en form for fopen() men måske noget lign:

$txt = @fopen("http://www.example.com/", "r");
if ($txt){
  mail("dinmail@ditsite.dk",$txt,$msg);
}
Avatar billede learner Praktikant
19. januar 2007 - 17:53 #5
ov det sku være:
$txt = @fopen("http://www.example.com/message.php", "r");

Men skal det være en php fil?
Kan du ik bare bruge en .txt fil, for så virker det ihvertfald

Og så kan du lave sådan at du kan redigere i din txt fil online osv
Avatar billede coderdk Praktikant
19. januar 2007 - 17:53 #6
Ja, hvis du vil inkludere selve PHP-koden, men hvis du vil have det som PHP-koden outputter skal du bruge min metode :)

file_get_contents() er nok smartere, learner, du mangler også en fread() ;P
Avatar billede learner Praktikant
19. januar 2007 - 17:56 #7
hehe og det sku vist være:
mail("dinmail@ditsite.dk",$subj,$txt,"FROM:<sidens@email.dk>");
Avatar billede learner Praktikant
19. januar 2007 - 17:56 #8
okay cool nok, jeg tror nu begge kan bruges
Avatar billede learner Praktikant
19. januar 2007 - 17:57 #9
fread() ?
Avatar billede learner Praktikant
19. januar 2007 - 17:58 #10
jamen vil han sende selve php koderne eller det php koderne generer?
Avatar billede coderdk Praktikant
19. januar 2007 - 18:04 #11
learner, Ja, det er det jeg spørger ham om :)

fopen skal bruges med fread - fopen returnerer bare et file-handle ;) Det er nemmere at bruge file_get_contents i stedet ;)
Avatar billede learner Praktikant
19. januar 2007 - 18:19 #12
nå ja nemli
Avatar billede bennybangkarl Nybegynder
20. januar 2007 - 09:47 #13
det er outputtet, jeg skal bruge, da jeg - som sagt - laver diverse db-udtræk på siden, som er det, der skal med mailen.. jeg prøver det lige og vender tilbage.. tak for de mange beskeder
Avatar billede bennybangkarl Nybegynder
20. januar 2007 - 09:52 #14
nu sender den helt fint outputtet - ved coderdk's første indlæg - men den skriver outputtet som tekst. Hvordan sikrer jeg mig, at det vises som html-format, det vil sige, at den tekst, jeg sender (som jo er html) vitterligt læses som html og ikke som tekst. Begge de mail-programmer jeg bruger er sat til at læse html, så det er ikke derfor.
Avatar billede coderdk Praktikant
20. januar 2007 - 12:12 #15
Prøv:

ob_start();
include("message.php");
$msg = ob_get_contents();
ob_end_clean();
$header = "MIME-Version: 1.0";
$header .= "\r\nContent-Type: text/html; charset=iso-8859-1";
mail("dinmail@ditsite.dk","Message.php",$msg);
Avatar billede coderdk Praktikant
20. januar 2007 - 12:12 #16
Bah! Linjen:

mail("dinmail@ditsite.dk","Message.php",$msg);

skal så være:

mail("dinmail@ditsite.dk","Message.php",$msg,$header);
Avatar billede bennybangkarl Nybegynder
20. januar 2007 - 15:30 #17
Det er underligt, men det virker sq ikke - den viser simpelthen kildekoden til outputtet i stedet for at læse teksten som html og vise den som sådan.. er der andre, der har forslag til, hvad fa'n, der er galt?
Avatar billede coderdk Praktikant
20. januar 2007 - 15:36 #18
Prøv lige:

ob_start();
include("message.php");
$msg = ob_get_contents();
ob_end_clean();
$header = "MIME-Version: 1.0";
$header .= "\r\nContent-Type: text/html; charset=\"iso-8859-1\"";
mail("dinmail@ditsite.dk","Message.php",$msg,$header);

Alternativt:

ob_start();
include("message.php");
$msg = imap_qprint( ob_get_contents() );
ob_end_clean();
$header = "MIME-Version: 1.0";
$header .= "\r\nContent-Type: text/html; charset=\"iso-8859-1\"";
$header .= "\r\nContent-Transfer-Encoding: quoted-printable";
mail("dinmail@ditsite.dk","Message.php",$msg,$header);
Avatar billede bennybangkarl Nybegynder
20. januar 2007 - 15:45 #19
jamen fantastisk - så virkede det.. undrede mig også lidt over, at al den nydelige header-info slet ikke skulle bruges :) men det skulle den jo så.. tak for hjælpen - pointene går til coderdk og er på vej i dette sekund
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