Avatar billede carstengp Nybegynder
30. januar 2008 - 19:15 Der er 7 kommentarer og
1 løsning

Ændre Return-path

Jeg bruger følgende kode som "send til en ven" script.
Det virker godt nok, men desværre sætter den en forkert mail ind under "Return-Path" og denne kan jeg ikke få ændret trods adskillige forsøg. Kan man ændre koden, så man på en eller anden måde selv kan bestemme return-path e-mailen?

--------------------

<?php

$FriendName = $_POST['FriendName'];
$FriendEmail = $_POST['FriendEmail'];
$Name = $_POST['Name'];
$Email = $_POST['Email'];
$emailtext = $_POST['emailtext'];
$string = $_SERVER['QUERY_STRING'];

?>
<html><head>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>
<body>
<?php
if (!$FriendEmail) {
?>
<br>
<form name="form1" onsubmit="MM_validateForm('Name','','R','Email','','RisEmail','FriendName','','R','FriendEmail','','RisEmail');return document.MM_returnValue" action="" method="POST">
<div align="center">
<table width="427" border="0" cellspacing="0" cellpadding="3">
  <tr>
    <td width="69" align="right" valign="top">&nbsp;</td>
    <td width="5"><font face="Verdana" size="2">&nbsp;</font></td>
    <td width="113"><font face="Verdana" size="2">Navn: </font> </td>
    <td width="216"> <font face="Verdana" size="2">E-mail:</font></td>
  </tr>
  <tr>
    <td align="right" valign="top"><font face="Verdana" size="2"><b>Dig:</b></font></td>
    <td>&nbsp;</td>
    <td>
      <font face="Verdana">
      <input type="text" name="Name" size="15"><font size="2"> </font></font>
    </td>
    <td>
      <font face="Verdana">
      <input type="text" name="Email" size="20"><font size="2"> </font></font>
    </td>
  </tr>
  <tr>
    <td align="right" valign="top"><font face="Verdana" size="2"><b>Din ven:</b></font></td>
    <td>&nbsp;</td>
    <td>
      <font face="Verdana">
      <input type="text" name="FriendName" size="15"><font size="2"> </font>
        </font>
    </td>
    <td>
      <font face="Verdana">
      <input type="text" name="FriendEmail" size="20"><font size="2"> </font>
        </font>
    </td>
  </tr>
  <tr>
    <td align="right" valign="top"><font face="Verdana" size="2"><b>Besked:</b></font></td>
    <td>&nbsp;</td>
    <td colspan="2">
      <font face="Verdana">
      <textarea name="emailtext" cols="38" rows="6" style="font-family: Trebuchet MS; font-size: 10pt">
Send et link til dette: <?php echo $string ?>
</textarea><font size="2"> </font></font>
    </td>
  </tr>
  <tr>
    <td align="right">&nbsp;</td>
    <td><font face="Verdana" size="2">&nbsp; </font> </td>
    <td>
      <font face="Verdana">
      <input type="submit" value="Send" name="Submit"><font size="2"> </font>
        </font>
    </td>
    <td>&nbsp;</td>
  </tr>
</table>
</div>
</form>
<?php
}
else {
if ($FriendEmail) { mail( $FriendEmail, "Message from $Name", "$FriendName,  \n\n".$emailtext ."\n\n$Name", "From: $Email");
                   
  }


echo "<center><br><br><font face=Verdana size=2>Thank you <font color=red>$Name</font>. The email has been sent to <font color=red>$FriendName</font>. <br><br><a href='java script:window.close();'>Close this window</a></font>
}
?>
<p>&nbsp;</p>
</body>
</html>
Avatar billede leif Seniormester
30. januar 2008 - 20:07 #1
Return-Path sættes ofte af Webhotellet når man bruger mail()
Avatar billede carstengp Nybegynder
30. januar 2008 - 21:26 #2
Nu er det min egen server... og jeg har opgivet at ændre den.
Det virker i hvertfald ikke. Den sætter stadig den forkerte mail
Avatar billede leif Seniormester
24. februar 2008 - 17:19 #3
Bruger du VirtualHost ?
Avatar billede leif Seniormester
24. februar 2008 - 17:20 #4
Ellers brug en SMTP connection


Hvis jeg har behov for SMTP forbindelse bruger jeg gerne: http://sourceforge.net/projects/phpmailer
Avatar billede carstengp Nybegynder
24. februar 2008 - 18:06 #5
Jeg har ingen anelse om, hvordan det skal sættes op.
Jeg bruger Plesk (køreklar serversoftware) og scriptet har jeg fundet på nettet, mere eller mindre klar til brug. Så det jeg har brug for er en ændring i det eksisterende script, eller en, der præcis ved, hvordan man ændrer return-path i Plesk
Avatar billede leif Seniormester
24. februar 2008 - 18:10 #6
Så brug en SMTP forbindelse, jeg mener at der sættes din From som Return-Path
Avatar billede carstengp Nybegynder
19. januar 2009 - 23:01 #7
leif... smid et svar...
Avatar billede leif Seniormester
19. januar 2009 - 23:11 #8
Svar.
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