03. februar 2009 - 09:17
Der er
6 kommentarer og 1 løsning
PHP problem mail()
Hej eksperter.. Jeg har problem med afsendelse af mail fra php ved anvendelse af flg. kode: <?php $modtager = "modtager@mail.dk"; //Hvem skal have mailen? $emne = "TEST"; //Emnefeltet $besked = "<h1 style='background-color: #006699'> Dette er en TEST! </h1>"; $header = "MIME-Version: 1.0" . "\r\n"; $header .= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; $header .= "from:afs@mail.dk"; if(mail($modtager, $emne, $besked, $header)){ //Send!! echo "TEST"; } ?> Koden afvikles på egen linux server, hvor sendmail er sat op, og kan afsende mails... Nogle ider til hvad der kan være galt? Findes der en cfg til mail funktionen, hvor smtp skal op ?
Annonceindlæg fra SoftwareOne
03. februar 2009 - 10:00
#1
Kommer der en fejl eller lignende? Du kan evt. prøve at bruge nedenstående PHP klasse, som anvender en SMTP server direkte: <?php /* SMTPClient V 1.0 - A Simple SMTP Client Description: Send Emails and show the SMTP ssss Response Author: RubServer */ class SMTPClient { function SMTPClient ($SmtpServer, $SmtpPort, $from, $to, $subject, $body) { $this->SmtpServer = $SmtpServer; $this->from = $from; $this->to = $to; $this->subject = $subject; $this->body = $body; if ($SmtpPort == "") { $this->PortSMTP = 25; }else{ $this->PortSMTP = $SmtpPort; } } function SendMail () { if ($SMTPIN = fsockopen ($this->SmtpServer, $this->PortSMTP)) { fputs ($SMTPIN, "EHLO ".$HTTP_HOST."\r\n"); $talk["hello"] = fgets ( $SMTPIN, 1024 ); fputs ($SMTPIN, "MAIL FROM: <".$this->from.">\r\n"); $talk["From"] = fgets ( $SMTPIN, 1024 ); fputs ($SMTPIN, "RCPT TO: <".$this->to.">\r\n"); $talk["To"] = fgets ($SMTPIN, 1024); fputs($SMTPIN, "DATA\r\n"); $talk["data"]=fgets( $SMTPIN,1024 ); fputs($SMTPIN, "To: <".$this->to.">\r\nFrom: <".$this->from.">\r\nSubject:".$this->subject."\r\n\r\n\r\n".$this->body."\r\n.\r\n"); $talk["send"]=fgets($SMTPIN,256); //CLOSE CONNECTION AND EXIT ... fputs ($SMTPIN, "QUIT\r\n"); $talk["quit"]=fgets($SMTPIN,256); fclose($SMTPIN); } return $talk; } } ?> Klassen er ret nem at bruges: $mail = new SMTPClient("smtpServer",25,$from,$to, $subject, $body); $resp = $mail->SendMail();
03. februar 2009 - 10:02
#2
Er problemet bare at denne kode ikke virker, eller er der mail() der ikke virker generelt ? Virker en kode ala dette f.eks.: <?php // The message $message = "Line 1\nLine 2\nLine 3"; // In case any of our lines are larger than 70 characters, we should use wordwrap() $message = wordwrap($message, 70); // Send mail('din@email.dk', 'My Subject', $message); ?>
03. februar 2009 - 10:16
#3
jakobgt/jakobdo --> Jeg får ingen fejl når jeg afvikler siden, men mailen kommer aldrig frem.. jakobgt --> Prøver lige din klasse!
03. februar 2009 - 10:58
#4
Ok .. return fra classen giver flg: Array ( [hello] => 220 pfepa.post.tele.dk ESMTP [From] => 501 Syntax: HELO hostname [To] => 503 Error: send HELO/EHLO first [data] => 503 Error: need MAIL command [send] => 503 Error: need RCPT command [quit] => 221 Error: I can break rules, too. Goodbye. )
03. februar 2009 - 10:59
#5
Det virker nu .. rettede: fputs ($SMTPIN, "EHLO ".$HTTP_HOST."\r\n"); til: fputs ($SMTPIN, "EHLO mit.relay.dk \r\n");
03. februar 2009 - 11:00
#6
Smid lige et svar .. :D
03. februar 2009 - 15:11
#7
Svar.
Vi tilbyder markedets bedste kurser inden for webudvikling