Avatar billede visto Guru
18. januar 2008 - 23:35 Der er 2 kommentarer og
1 løsning

Afsenders navn skal fremgå ved tilmelding til nyhedsbrev

Jeg er fornyligt overgået fra asp til php-scripts på mit site.

Når jeg modtog meddelelse via ASP-scriptet ved tilmelding til nyhedsbrev fremgik personens navn eller email-adresse af "Fra:" i den mail jeg modtog i den forbindelse (det er et helt primitivt system, hvor jeg blot får en helt almindelig mail, når folk til- eller afmelder sig).

Når jeg modtgager tilmelinger via det nye PHP-script fremgår der som "Fra:"-oplysningen blot en for mig ganske ubrugelig adresse:
vinsiderne.dk@cdka12.cliche.dk, hvor vinsiderne.dk er mit domæne, mens cliche.dk henviser til hosten.

Det tildligere anvendte ASP-script så sådan ud:
<%
set msg = Server.CreateOBject( "JMail.Message" )
msg.Logging = true
msg.silent = true
msg.ContentType = "text/html"
msg.From = Request.Form("Email")
msg.FromName = Request.Form("Navn")
msg.AddRecipient "info@mitdomæne.dk", "mitdomæne.dk"
msg.Subject = "Ang. nyhedsbrev"
msg.Body = "Fra:<br>" & Request.Form("Navn") & "<br><br>Email:<br>" & Request.Form("Email") & "<br><br>Ønske:<br>" & Request.Form("M")
if not msg.Send("localhost" ) then
Response.write "<pre>" & msg.log & "</pre>"
else
Response.write "<p class=""besked""><br><br>Du får en bekræftelse, når din til- eller afmelding er registreret.</p>"
end if
Set msg = Nothing
%>

Det aktuelle PHP script ser sådan ud:
<?
if(!$_REQUEST[Email]) {
    echo "<p class=\"besked\"><br><br>Du skal indtaste din email-adresse.</p>";
} else {

if(substr_count($_REQUEST[Email],'@')==0) {
    echo "<p class=\"besked\"><br><br>Husk<br>@</p>";
} else {

$subject  = "Ang. nyhedsbrev";
$recipient = 'info@mitdomæne.dk';
$message  = "Fra: <br /> ".htmlspecialchars($_REQUEST['Navn'])."<br /><br /> Email: <br />";
$message  .= htmlspecialchars($_REQUEST['Email'])."<br /><br /> Ønske: <br
/>".htmlspecialchars($_REQUEST['M']);
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers  .= 'Content-type: text/html; charset=windows-1252' . "\r\n";
$headers  .= 'From: mitdomæne.dk' . "\r\n";

mail($recipient, $subject, $message, $headers);
?>
<p class="besked"><br><br>Du får en bekræftelse, når din til- eller afmelding er registreret.</p>
<?
}
}
?>

Hvordan får jeg den tilmeldendes mail-adresse til at fremgå som "Fra:" (afsender) af beskeden om tilmelding?
Avatar billede Slettet bruger
19. januar 2008 - 00:12 #1
Hej Preben

Kan ikke lige gennemskue din kode (html-delen mangler - og jeg kender ikke lige måden disse 2 linier er skrevet på, men kan regne ud at det har med specialtegn at gøre, hvor det så kan komme ind)

men prøv lige at sætte et . (punktum) lige før = (lig)i denne linie

$message  .= "Fra:  o.s.v.
som i næste linie
$message  .= htmlspecialchars($_REQUEST['Email'])."<br /><br /> Ønske: <br
Avatar billede dcheng Novice
19. januar 2008 - 02:45 #2
Prøv det her:


<?php
if(!$_REQUEST['Email']) {
    echo "<p class=\"besked\"><br><br>Du skal indtaste din email-adresse.</p>";
} else {

if(substr_count($_REQUEST['Email'],'@')==0) {
    echo "<p class=\"besked\"><br><br>Husk<br>@</p>";
} else {

$subject  = "Ang. nyhedsbrev";
$recipient = 'info@mitdomæne.dk';
$message  = "Fra: <br /> ".htmlspecialchars($_REQUEST['Navn'])."<br /><br /> Email: <br />";
$message  .= htmlspecialchars($_REQUEST['Email'])."<br /><br /> Ønske: <br
/>".htmlspecialchars($_REQUEST['M']);
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers  .= 'Content-type: text/html; charset=windows-1252' . "\r\n";
$headers .= "From: ".$_REQUEST['Navn']." <".htmlspecialchars($_REQUEST['Email']).">\r\n";

mail($recipient, $subject, $message, $headers);
?>
<p class="besked"><br><br>Du får en bekræftelse, når din til- eller afmelding er registreret.</p>
<?php
}
}
?>
Avatar billede visto Guru
19. januar 2008 - 09:41 #3
>dcheng: Ja, det virker som det skal. Så mange tak for hjælpen.

Jeg kom til at stille spørgsmålet tvetydligt, idet overskriften efterspurgte at afsenders navn skulle fremgå, og til sidst i spørgsmålet beder jeg om at afsenders email skal fremgå. Men man kan jo så vælge om der skal stå
$headers .= "From: ".$_REQUEST['Navn']."
eller
$headers .= "From: ".$_REQUEST['Email']."
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