13. november 2007 - 17:24
Der er
26 kommentarer og 1 løsning
mail afsender !
Hej eksperten Har for mig et stort problem.. bruger CMSimple på en side jeg har der har jeg lagt et lille forum i hvor forumet sender en mail når der er et nyt indlæg.. men afsenderen står som "H-Sphere Httpd Daemon (httpd@ws21.surf-town.net)" hvordan kan jeg lave det om! På forhånd tak MtM
Annonceindlæg fra Barco
13. november 2007 - 17:25
#1
index.php <?php /* CMSimple Plugin - genizforum version 1 beta 1 ------------------------------------------------------------- - Beta 1 : 06jun2005 - First beta released ------------------------------------------------------------- Partly based on ONBoard.php */ function GenizForum($forum,$admin) { GLOBAL $su, $pth, $plugin_tx,$plugin_cf,$_SERVER; $delid = isset($_POST['delid']) ? $_POST['delid'] : $_GET['delid']; $postsubject = isset($_POST['postsubject']) ? $_POST['postsubject'] : $_GET['postsubject']; $postname = isset($_POST['postname']) ? $_POST['postname'] : $_GET['postname']; $posthttp = isset($_POST['posthttp']) ? $_POST['posthttp'] : $_GET['posthttp']; $postmsg = isset($_POST['postmsg']) ? $_POST['postmsg'] : $_GET['postmsg']; $postid = isset($_POST['postid']) ? $_POST['postid'] : $_GET['postid']; if (!isset($forum)) $forum = isset($_POST['forum']) ? $_POST['forum'] : $_GET['forum']; $path = $pth['folder']['plugins']."genizforum/data/".$forum."/"; if(!file_exists($path)) mkdir($path,0777); if(!file_exists($path)) $o.="<br>ERROR: Creation of dir failed"; $imagesdir = $pth['folder']['plugins']."genizforum/images"; //write msg to file if($postid && $postmsg) { $curpath=$path.$postid; if (strtolower($plugin_cf['genizforum']['html_safe'])=='true') { $postmsg=str_replace('#','#',htmlspecialchars($postmsg, ENT_QUOTES)); $postname=strip_tags($postname); $postsubject=strip_tags($postsubject); } if (!$plugin_cf['genizforum']['mail_notification']=='') @mail($plugin_cf['genizforum']['mail_notification'],'Forum: '.$forum,"From: ".$postname."\r\nSubject: ".$postsubject."\r\n\r\n"."Message:\r\n".$postmsg); $postname=htmlspecialchars($postname, ENT_QUOTES); $postmsg = "<tr class=\"GenizForum_tbody\">" ."<td width=\"100%\"><p class=\"GenizForum_msg\">".$postmsg."</p></td>" ."<td valign=\"top\"><ul class=\"GenizForum_ul\"><li class=\"GenizForum_name\">".$postname."</li><li class=\"GenizForum_date\">".date($plugin_tx['genizforum']['date'])."</li><li class=\"GenizForum_time\">".date("H:i:s")."</li></ul></td></tr>"; if (file_exists($curpath)==FALSE) $curpath=$path.$postsubject."_".$postid; if (!$fp = fopen ($curpath, 'a')) $o.="<br>ERROR: Cannot open file ($curpath)"; if (fwrite($fp,$postmsg)==FALSE) $o.="<br>ERROR: Cannot write to file ($curpath)"; fclose($fp); header('Location: '.$_SERVER['REQUEST_URI']);exit; }//end writemsg //read dir and find filenames $fi=0; $curpath=$path ; if ($dir = opendir($curpath)) { while (($file = readdir($dir)) !== false) { if($i>1) { $filelist[$fi] = $file; $fi++; } $i++; }//while closedir($dir); }//end read dir //begin html form $o.= "<!-- Code start - inserted by GenizForum --><form name=\"genizforum\" method=\"post\" action=\"?".$su."\">"; //begin displaying threads //Note: it is readering out the files in reverse order so that newer files go on top $fi--; $o.= "<table class=\"GenizForum_table\" rules=\"rows\">"; while($fi>=0) { $readpath = $curpath.$filelist[$fi]; $o.="<tr class=\"GenizForum_thead\">" ."<td width=\"100%\">".substr($filelist[$fi],0,strpos($filelist[$fi],'_'))."</td>"; if(!($admin == 'plugin_main')) $o.="<td style=\"white-space: nowrap;\"> ".$plugin_tx['genizforum']['reply']."<input name=\"postid\" type=\"radio\" value=\"$filelist[$fi]\" onfocus=\"this.checked='true';document.forms['genizforum'].postname.focus();document.forms['genizforum'].postsubject.disabled = true;\"></td>"; else $o.="<td><a href=\"?&genizforum&admin=plugin_main&action=show&forum=$forum&delid=$filelist[$fi]\"><img src=\"$imagesdir/delete.png\" alt=\"".$plugin_tx['genizforum']['delete']."\"></a></td>"; $o.="</tr>" .@stripslashes(implode("<br>",file($readpath))) ."</tr>"; $fi--; }//end while $o.= "</table><br>"; //end display //begin footer if (!($admin == 'plugin_main')) { $o.= "<table width=\"100%\">" ."<tr><td colspan=\"2\">".$plugin_tx['genizforum']['new']."<input name=\"postid\" type=\"radio\" value=\"".date("ymdHis")."\" checked=\"checked\" onfocus=\"document.forms['genizforum'].postname.focus();document.forms['genizforum'].postsubject.disabled = false;\"></td></tr>" ."<tr><td style=\"white-space: nowrap;\">".$plugin_tx['genizforum']['author']."</td><td><input name=\"postname\" type=\"text\" maxlength=\"10\" size=\"10\"></td></tr>" ."<tr><td style=\"white-space: nowrap;\">".$plugin_tx['genizforum']['subject']."</td><td><input name=\"postsubject\" type=\"text\"></td></tr>" ."<tr><td style=\"white-space: nowrap;\" valign=\"top\">".$plugin_tx['genizforum']['text']."</td><td width=\"100%\"><textarea name=\"postmsg\" cols=\"66\" rows=\"3\"></textarea></td></tr>" ."<tr><td colspan=\"2\"><input type=\"submit\" name=\"write\" value=\"Send\"></td></tr>" ."</table>"; } $o.="<input type=\"hidden\" name=\"forum\" value=\"$forum\">"; $o.="</form>"; //end footer return $o."<!-- Code end - inserted by GenizForum -->"; } // end function ?>
13. november 2007 - 19:08
#2
Det er denne linie som sender emailen:
@mail($plugin_cf['genizforum']['mail_notification'],'Forum: '.$forum,"From: ".$postname."\r\nSubject: ".$postsubject."\r\n\r\n"."Message:\r\n".$postmsg);
Der kunne du prøve at kigge lidt på:
http://dk2.php.net/manual/en/function.mail.php Måske du skal bruge: headers eller '-fwebmaster@example.com'
Du må forsøge dig lidt frem.
14. november 2007 - 18:24
#3
hej Jakob... Kan sku ikke få det til at virke :o( /MtM
15. november 2007 - 08:12
#4
Hvordan ser din $mail(...) ud nu? Altså efter du har prøvet at rette?
15. november 2007 - 08:20
#5
Prøv at ret $mail(...) til: @mail( $plugin_cf['genizforum']['mail_notification'], 'Forum: '.$forum, 'From: '.$postname."\r\nSubject: ".$postsubject."\r\n\r\n"."Message:\r\n".$postmsg, 'From: '.postname."\r\nReply-To: '.$postname."\r\nX-Mailer: PHP/".phpversion(), '-f'.$postname);
15. november 2007 - 17:09
#6
Hej igen Jakob Det virker desværre ikke .. når jeg taster det ind vil forumet ikke starte op... /MtM
15. november 2007 - 17:12
#7
Tror jeg har fået lavet en fejl her: "\r\nReply-To: ' Det skal rettes til: "\r\nReply-To: "
15. november 2007 - 17:13
#8
Er det ikke denne line $postname = isset($_POST['postname']) ? $_POST['postname'] : $_GET['postname']; hvor mailen får at vide, hvad der skal står i modtager feltet?
15. november 2007 - 17:16
#9
"\r\nReply-To: " gør desværre det samme forumet starter ikke op viser "bare" en blank side.
15. november 2007 - 21:13
#10
Virker din oprindelige kode?
15. november 2007 - 21:42
#11
Ja
16. november 2007 - 08:25
#12
Hvis du tager linien: @mail($plugin_cf['genizforum']['mail_notification'],'Forum: '.$forum,"From: ".$postname."\r\nSubject: ".$postsubject."\r\n\r\n"."Message:\r\n".$postmsg); Og erstatter den med: @mail($plugin_cf['genizforum']['mail_notification'],'Forum: '.$forum,"From: ".$postname."\r\nSubject: ".$postsubject."\r\n\r\n"."Message:\r\n".$postmsg,'From: '.postname."\r\nReply-To: ".$postname."\r\nX-Mailer: PHP/".phpversion()); Virker det så ?
17. november 2007 - 00:19
#13
hej igen Jakob.. Ved ikke hvad jeg har lavet. men nu virker det med det sidste du skrev.. Nu siger den i hvert fald. postname@ws21.surf-town.net som afsender.. Kan man ikke lave det om til eks. domain.dk eller min_sides forum. Jeg troede man "bare" kunne skrive et sted, at det er det afsender skal være " bla bla! /MtM
17. november 2007 - 08:16
#14
Hvordan ser din kode ud nu? Altså @mail() delen.
17. november 2007 - 09:19
#15
Jeg tror at opgaven måske er umulig... Pga. alle problemerne med SPAM er mange mailsystemer for længst blevet konfigureret til at man ikke kan afsende mails sådan at de ser ud til at komme fra en anden afsender end dig selv. Så vidt jeg kan se forsøger du ar hente $postname far formen og formatere mailen som om at den kommer fra denne afsender... Det er muligt at du kan få lov til dette, men der er som sagt ikke nødvendigvis nogten garanti. Hvis dette er tilfældet skal du nok kun regne med at sende mails som om at de kommer fra dit eget domain.
17. november 2007 - 10:51
#16
Jakob -> jeg bruger det sidste du har skrevet..(08:25)
nielle -> jamen postname@ws21.surf-town.net er "vel" surftowns.
Jeg har jo et domain navn der hedder noget andet.. eks.
www.mitdomain.dk
17. november 2007 - 11:19
#17
Du kunne jo prøve at starte helt simpelt: <?php $to = 'modtager@ditdomain.dk'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: webmaster@ditdomain.dk' . "\r\n" . 'Reply-To: webmaster@ditdomain.dk' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?> Virker den kode?
17. november 2007 - 11:23
#18
Ad 17/11-2007 10:51:38> Jeg gætter på at der måske sker det at den falder tilbage til surftowns adresse eftersom at du ikkke selv angiver en lovlig værdi - som noget i stil med det jakobdo forslår ovenfor.
17. november 2007 - 12:12
#19
Jakob > Ja det virker. Modtager en mail med rigtig afsender. og naturligvis teksten hello..
17. november 2007 - 12:20
#20
Prøv så at ret webmaster@ditdomain.dk til f.eks.: webmaster@eksperten.dk både i from og reply-to. Virker det?
17. november 2007 - 12:34
#21
yep! det virker også
18. november 2007 - 18:00
#22
Så burde din tidligere kode også kunne virke.
19. november 2007 - 08:06
#23
Jakob-> jeg forstår ikke helt den sidste kommentar. Forumet virker. men afsenderen står stadigvæk som postname@ws21.surf-town.net Kan man ikke lave noget i stil med $postname = 'webmaster@ditdomain.dk'; ved godt den får postname i denne line $postname = isset($_POST['postname']) ? $_POST['postname'] : $_GET['postname']; men kan man lave det om? eller er jeg helt forkert op den?
19. november 2007 - 08:27
#24
Prøv lige et sidste forsøg: @mail( $plugin_cf['genizforum']['mail_notification'], 'Forum: '.$forum, $postmsg, 'From: webmaster@ditdomæne.dk' . "\r\n" . 'Reply-To: webmaster@ditdomæne.dk' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); );
19. november 2007 - 09:14
#25
jakob -> Mange tak for hjælpen. smid lige et svar. Jeg fandt ud af det! lavede en $modtager = 'webmaster@ditdomain.dk'; og indsatte så "bare" .$modtager. Der hvor de skulle være.. /MtM
19. november 2007 - 10:55
#26
Svar! :o)
19. november 2007 - 12:24
#27
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling