Avatar billede nakhaii Nybegynder
23. januar 2007 - 00:09 Der er 11 kommentarer og
1 løsning

Link i en e-mail?

Hej Eksperter,

Hvordan kan man tilføje et link til en hjemmeside, i en e-mail, der bliver sendt automatiske gennem en database på en hjemmeside.

Noget af koden ser således ud.

$emne    = "Tilmelding";
    $besked  = "BEMÆRK DENNE MAIL ER SENDT AUTOMATISK OG KAN IKKE BESVARES!\n\n";
    $besked .= "Indtast e-mail + denne kode (tryk på dette link:<a href='http://www.x.dk/godkend.php'>Godkend tilmelding</a>): $godkend\n";

    mail($email, $emne, $besked);

? - hvad er fejlen?
Avatar billede Slettet bruger
23. januar 2007 - 10:30 #1
$afsender_navn = "afsender navn her";
$afsender_email = "afsender@email.her";

$headers = 'From: "'.$afsender_navn.'"
Reply-To: "'.$afsender_navn.'" ;
X-Mailer: PHP/'.phpversion().';
Content-Type:text/plain; charset="iso-8859-1";';

$besked  = "BEMÆRK DENNE MAIL ER SENDT AUTOMATISK OG KAN IKKE BESVARES!<br><br>Indtast e-mail + denne kode (tryk på dette link: <a href='http://www.x.dk/godkend.php'>Godkend tilmelding</a>): $godkend";

mail($email, $emne, $besked, $headers);
Avatar billede nakhaii Nybegynder
23. januar 2007 - 15:03 #2
<a href='http://www.x.dk/godkend.php'>Godkend tilmelding</a>

Det er ovenstående der er problemer med - når der kommer en mail, så det ikke som et link i mailen - hvad kan man gøre ?
Avatar billede pidgeot Nybegynder
23. januar 2007 - 15:19 #3
Problemet er vel at du sender din mail som tekst, og ikke HTML. Det betyder så at du ikke kan bruge HTML til at linke, men skal skrive adressen "as-is". Hvis du virkelig vil bruge HTML, må du sætte en Content-Type: text/html; charset=iso-8859-1 ind som header - og så skal du så også bruge HTML fuldt ud, dvs. linieskift skal laves om til HTML.

dennisjeppesen er inde på noget af det rigtige - dog skal $headers se sådan ud (dvs. en lang linie!):

$headers ='From: "'.$afsender_navn.'" <'.$afsender_email.'>'."\r\n".'Reply-To: '.$afsender_email.'."\r\n".'X-Mailer: PHP/'.phpversion()."\r\n".'Content-Type: text/html; charset=iso-8859-1';

Der er nemlig et krav om at man skal bruge \r\n til at adskille headers med (hvilket Windows gør), og det han kom med vil derfor ikke virke hvis det laves med Unix' linieskift (kun \n) - derfor kan man lige så godt sikre sig at man har lavet det korrekt. (Det er tilladt at lave den på flere linier, men linieskiftene SKAL laves med \r\n, og ikke med et tryk på Enter.)
Avatar billede nakhaii Nybegynder
23. januar 2007 - 15:29 #4
Den skriver at der er en "syntax error, unexpected T_STRING", ved den $headers du skrev?

Hvad kan der være galt, og forresten hvor skal jeg indsætte Content-Type: text/html; charset=iso-8859-1?
Avatar billede pidgeot Nybegynder
23. januar 2007 - 15:37 #5
Det er som sagt i dine mail-headers, hvilket er en seperat variabel der gives med til mail() som den fjerde parameter. Det er også der man specificerer hvem der har sendt mailen, hvilket også gøres af den linie.

Og ja, der havde lige sneget sig en smutter ind - den rigtige linie skal se sådan ud:

$headers ='From: "'.$afsender_navn.'" <'.$afsender_email.'>'."\r\n".'Reply-To: '.$afsender_email."\r\n".'X-Mailer: PHP/'.phpversion()."\r\n".'Content-Type: text/html; charset=iso-8859-1';
Avatar billede nakhaii Nybegynder
23. januar 2007 - 15:41 #6
siger du så at den skal stå i denne kode: mail($email, $emne, $besked, $headers);?
Avatar billede pidgeot Nybegynder
23. januar 2007 - 15:44 #7
Ja, den skal stå umiddelbart før dit kald til mail(), hvilket gør at det hele kommer til at se sådan ud (husk dog at rette afsendernavn og -mailadresse:

$afsender_navn = "afsender navn her";
$afsender_email = "afsender@email.her";

$emne    = "Tilmelding";
    $besked  = "BEMÆRK DENNE MAIL ER SENDT AUTOMATISK OG KAN IKKE BESVARES!\n\n";
    $besked .= "Indtast e-mail + denne kode (tryk på dette link:<a href='http://www.x.dk/godkend.php'>Godkend tilmelding</a>): $godkend\n";
    $headers ='From: "'.$afsender_navn.'" <'.$afsender_email.'>'."\r\n".'Reply-To: '.$afsender_email."\r\n".'X-Mailer: PHP/'.phpversion()."\r\n".'Content-Type: text/html; charset=iso-8859-1';

    mail($email, $emne, $besked, $headers);
Avatar billede nakhaii Nybegynder
23. januar 2007 - 15:47 #8
ok mange tak virker - tænkte på noget andet kig lige på dette http://www.eksperten.dk/spm/757206 - hvis du ved noget om det kunne det være helt super!
Avatar billede pidgeot Nybegynder
23. januar 2007 - 15:54 #9
Du får lige et svar, så.
Avatar billede nakhaii Nybegynder
23. januar 2007 - 16:03 #10
$besked  = "BEMÆRK DENNE MAIL ER SENDT AUTOMATISK OG KAN IKKE BESVARES!<br><br><a href='http://www.x.dk/godkend.php'>Godkend Tilmelding</a><br><br>Kopier tilmeldingskoden, og sæt den ind i Kode-feltet, som findes ved at klikke på ovenstående link: <b>$godkend"</b>;

HVad er der galt med denne kode
Avatar billede pidgeot Nybegynder
23. januar 2007 - 16:16 #11
Du har placeret slut-tagget til <b> udenfor din streng.
Avatar billede nakhaii Nybegynder
23. januar 2007 - 16:22 #12
ok ved du noget om det andet jeg skrev?
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