LMarie Skrevet 30. november 2009 Del Skrevet 30. november 2009 Hei igjen alle sammen! skal legge inn et php script på en webside så når man går inn her eller refresh'er skal scriptet sende en mail med en melding som er satt i scriptet. Hvis jeg bruker <? $to = "[email protected]"; $subject = "Test"; $msg = "Test meld"; $headers = "From: [email protected]\nReply-To: [email protected]"; $config = "[email protected]"; mail("$to", "$subject", "$msg", "$headers", "$config"); echo "finished!"; ?> eller <? $to = "[email protected]"; $subject = "Test"; $msg = "Test meld"; $headers = "From: [email protected]\nReply-To: [email protected]"; mail("$to", "$subject", "$msg", "$headers"); echo "finished!"; ?>[/ Får jeg besked om at mail er send men kommer jo ingenting. SMTP må kanskje inn i bildet eller socket? Vet noen om noen nyttige linker? Har leta med rundt mye men finner ingen sider hvor det står enkelt forklart. kanskje litt steg for steg (her skal vi ha det inn med teskje ) Lenke til kommentar
nomore Skrevet 30. november 2009 Del Skrevet 30. november 2009 Er det du som har satt opp serveren eller har du kjøpt et webhotell et sted? Lenke til kommentar
LMarie Skrevet 30. november 2009 Forfatter Del Skrevet 30. november 2009 er i jobb sammenheng så kan vel si delvis meg Lenke til kommentar
nomore Skrevet 30. november 2009 Del Skrevet 30. november 2009 Delvis? Hvilket svar er det? Funksjonen mail() i PHP bruker på Linux vanligvis sendmail til å sende ut e-post. Sendmail sender e-posten direkte til MX-pekerene til mottakeren(adressen), så en forutsetning for at dette skal fungere er at serveren har lov til å sende ut e-post på port 25, og at DNS oppslag fungerer på boksen. Lenke til kommentar
Azidops Skrevet 30. november 2009 Del Skrevet 30. november 2009 Selvfølgelig får du positivt svar på om mailen er sendt med det scriptet der! Du tester ikke på om det er sendt, men gir positivt svar uansett. mail() gir true eller false og kan derfor settes inn i en if-setning. if (mail($to, $subject, $body, $headers)) { echo("<p>Message successfully sent!</p>"); } else { echo("<p>Message delivery failed...</p>"); } Jeg ser og at du sender til en tulleaddresse. Nå er jeg ikke helt sikker, men jeg tror at mail() får svar tilbake om mailen er ekte eller ei i fra mailserver og i dette tilfellet vil den da få svar at mailadressen ikke er funnet = false. Prøv med en ekte mail og se. Hvis ikke, skriv phpinfo() og let etter "sendmail_from", "sendmail_path" og "Path to sendmail" og se om det står noe fornuftig der. Lenke til kommentar
kbot Skrevet 30. november 2009 Del Skrevet 30. november 2009 (endret) her er en kode som viker: <?php // skjeller om det er en riktig mailadresse function mailadr($adre){ $til1 = explode("@",$adre); $til2 = $til1[1]; $til3 = explode(".",$til2); $til4 = $til3[1]; $til5 = explode(" ",$til); $til6 = $til5[1]; if (!$til4 || $til6){ $ok = "n"; }else{$ok = "j"; } return $ok; } //fungjon som seder mail i HTML Kode function sendEpost($til, $tema, $melding, $fra, $tesett){ $okfra = mailadr($fra); $oktil = mailadr($til); $melding = nl2br($melding); //gjør æøå om til HTML kode $melding = str_replace("å","å", $melding); $melding = str_replace("Å","Å", $melding); $melding = str_replace("ø","ø", $melding); $melding = str_replace("Ø","Ø", $melding); $melding = str_replace("æ","æ", $melding); $melding = str_replace("Æ","Æ", $melding); $headere = "MIME-Version: 1.0\r\n". "Content-type: text/html; charset = ".$tesett."\r\n". "From:".$fra; //Dersom fra adresse ikke er en E-postadresse if ($okfra == "n"){ print("<p>Ingen mail ble sendet til ".$til." den ikke er en riktig fra adresse.</p>"); //Dersom til adresse ikke er en -Epostadresse } else if ($oktil == "n"){ print("<p>Ingen mail ble sendet til ".$til." den ikke er en riktig til adresse.</p>"); //Dersom fra adresse er en E-postadresse } else if ($okfra == "j"){ //Sender E-mailen mail($til, $tema, $melding, $headere); print("<p>Meldingen er sendt. til ".$til.".<br />". "Du skan skrive en ny meal eller sende den til en annen.</p>"); //Dersom til adresse er en E-postadresse } else if ($oktil == "j"){ //Sender E-mailen mail($til, $tema, $melding, $headere); print("<p>Meldingen er sendt. til ".$til.".<br />". "Du skan skrive en ny meal eller sende den til en annen.</p>"); } } //Funksjon som lager et skjema du kan skrive skrive en mail function skrivMail($Actions, $avsender, $mottaker, $emne, $tekst){ $Form1 = "<form name=\"skrivmail\" method=\"post\" action =\"".$Actions."\">\n". "<p>Til Epost-adressse:<br />\n". "<input type =\"text\" size =\"50\" name=\"Mottakeren\"". "value = \"". $mottaker. "\"><br />\n". "<p>Fra Epost-adressse:<br />\n". "<input type =\"text\" size =\"50\" name=\"Avsenderen\"". "value = \"". $avsender. "\"><br />\n". "Emne:<br />\n". "<input type =\"text\" size = \"50\" name=\"Emnet\"". "value = \"". $emne. "\"><br />\n". "Melding:<br />\n". "<textarea cols =\"50\" rows =\"10\" name=\"Teksten\">\n". $tekst. "\n</textarea><br />\n"; $Form2 = "<button type = \"submit\" onclick=\"submit\">Send</button>\n". "<button type = \"reset\" onclick=\"reset\">Slett</button>\n</p>\n". "</form>"; print($Form1.$Form2); } //toppfrase $toppfrase = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n". "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n". "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"; //HTML hode $head = "<head>\n<title>test</title>\n". //"<link rel=.\"styleSHEET\" type = \"text/css\" href=\"KBITstil.css\" />". "<meta http-equiv=\"Content-Type\" content=\"text/html\"; charset=\"ISO-8859-1\"/>\n". "</head>\n"; //mail som send $side = "email.php"; //$sender = "[email protected]"; //webside //mottar data fra siden $mottak = $_POST['Mottakeren']; $emn = $_POST['Emnet']; $teks = $_POST['Teksten']; $sender = $_POST['Avsenderen']; //printf($mottak.", ".$emn.", ".$teks); print($toppfrase.$head); print("<body>\n"); //sjekker om der er noe som skal sendes if (!$mottak) { skrivMail($side, $sender, "", "", ""); } else{ //Sender mailen som du har laget sendEpost($mottak, $emn, $teks, $sender); // setter opp skjemate med det du har sendt skrivMail($side, $sender, $mottak, $emn, $teks); } print("</body>\n</html>"); ?> Du kan teste den på http://www.kb-it.no/test/email.php Endret 30. november 2009 av kbot Lenke til kommentar
LMarie Skrevet 1. desember 2009 Forfatter Del Skrevet 1. desember 2009 Måtte laste ned phpmailer og bruke følgende script for å få det til: <?php if(!class_exists('PHPMailer')) { require('**/phpmailer/class.phpmailer.php'); } $mail = new PHPMailer(); $mail->From = "[email protected]"; $mail->FromName = "test"; $mail->AddAddress("min_mail_adresse", "mitt_navn"); // SMTP server name $mail->Host = "smtp_server_navn"; $mail->Mailer = "smtp"; $mail->Subject = "mail_emne"; $mail->Body = "Dette er en test" if(!$mail->Send()) $results = 'Error message'; else $results = 'Success message'; ?> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå