Gå til innhold

[Løst]Sende mail med php


Anbefalte innlegg

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? :p

 

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 :p)

Lenke til kommentar
Videoannonse
Annonse

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

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

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 av kbot
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...