Avatar billede baitianlong Nybegynder
18. august 2006 - 20:23 Der er 5 kommentarer og
1 løsning

authentication til mail()

Warning: mail(): SMTP server response: 550 Requested action not taken: mailbox unavailable or not local in C:\Inetpub\vhosts\kpw.com.my\httpdocs\index.php on line 31

Hvad hulen goer man ved det? Serveren skal have authentication...

Linie 31:

mail($reciever, $subject, $body, "From: ".$sender);
Avatar billede iss Novice
18. august 2006 - 20:25 #1
Prøv at brug din ISP's SMTP...
Avatar billede baitianlong Nybegynder
18. august 2006 - 20:36 #2
jamen, det er hosted paa et webhotel, saa det kan jeg vel ikke... Men maa kunne skrive noget authentication halloej i php koden
Avatar billede iss Novice
18. august 2006 - 20:37 #3
Så må din host da lave noget! Og nej det kan du ikke direkte, så skal du lave din engen mail funktion (der så ikke må hede mail())...
Avatar billede iss Novice
18. august 2006 - 20:39 #4
Fra manualen:

josephcmiller2 at gmail dot com
26-May-2006 04:26
I have been using the function mymail() provided by Antony Male (below) to send mail on my server, but with a couple of modifications.  First, I needed to enable AUTH LOGIN in order to use my smtp server from my ISP.  Second, his mymail() function allows for a $from to be used, but the function does not accept any such parameter.  I have addressed the latter issue by parsing the headers to obtain the From: address.  If this is not provided, failed mail will not be returned properly to the sender.

// modified to provide authenticated logins
function mymail($to,$subject,$message,$headers)
{

  // set as global variable
  global $GLOBAL;

  // get From address
  if ( preg_match("/From:.*?[A-Za-z0-9\._%-]+\@[A-Za-z0-9\._%-]+.*/", $headers, $froms) ) {
    preg_match("/[A-Za-z0-9\._%-]+\@[A-Za-z0-9\._%-]+/", $froms[0], $fromarr);
    $from = $fromarr[0];
  }

  // Open an SMTP connection
  $cp = fsockopen ($GLOBAL["SMTP_SERVER"], $GLOBAL["SMTP_PORT"], &$errno, &$errstr, 1);
  if (!$cp)
  return "Failed to even make a connection";
  $res=fgets($cp,256);
  if(substr($res,0,3) != "220") return "Failed to connect";

  // Say hello...
  fputs($cp, "HELO ".$GLOBAL["SMTP_SERVER"]."\r\n");
  $res=fgets($cp,256);
  if(substr($res,0,3) != "250") return "Failed to Introduce";

  // perform authentication
  fputs($cp, "auth login\r\n");
  $res=fgets($cp,256);
  if(substr($res,0,3) != "334") return "Failed to Initiate Authentication";

  fputs($cp, base64_encode($GLOBAL["SMTP_USERNAME"])."\r\n");
  $res=fgets($cp,256);
  if(substr($res,0,3) != "334") return "Failed to Provide Username for Authentication";

  fputs($cp, base64_encode($GLOBAL["SMTP_PASSWORD"])."\r\n");
  $res=fgets($cp,256);
  if(substr($res,0,3) != "235") return "Failed to Authenticate";

  // Mail from...
  fputs($cp, "MAIL FROM: <$from>\r\n");
  $res=fgets($cp,256);
  if(substr($res,0,3) != "250") return "MAIL FROM failed";

  // Rcpt to...
  fputs($cp, "RCPT TO: <$to>\r\n");
  $res=fgets($cp,256);
  if(substr($res,0,3) != "250") return "RCPT TO failed";

  // Data...
  fputs($cp, "DATA\r\n");
  $res=fgets($cp,256);
  if(substr($res,0,3) != "354") return "DATA failed";

  // Send To:, From:, Subject:, other headers, blank line, message, and finish
  // with a period on its own line (for end of message)
  fputs($cp, "To: $to\r\nFrom: $from\r\nSubject: $subject\r\n$headers\r\n\r\n$message\r\n.\r\n");
  $res=fgets($cp,256);
  if(substr($res,0,3) != "250") return "Message Body Failed";

  // ...And time to quit...
  fputs($cp,"QUIT\r\n");
  $res=fgets($cp,256);
  if(substr($res,0,3) != "221") return "QUIT failed";

  return true;
}
Avatar billede baitianlong Nybegynder
19. august 2006 - 12:58 #5
Den der kunne jeg heller ikke lige faa til at virke, men jeg har fikset det ved at bruge sourceforge phpmailer :)
Avatar billede iss Novice
20. august 2006 - 00:23 #6
Ja, undskyld jeg forsøger at hjælpe dig, bare rolig det skal ikke ske igen.
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