Avatar billede lsolesen Nybegynder
11. februar 2003 - 17:48 Der er 5 kommentarer og
1 løsning

SMTP vil ikke sende

Hvorfor kan jeg ikke få følgende til at sende?

    $SMTP = new SMTP();
    if($POP3) $POP3->pop_quit($soket);
    $to = str_replace("\\","",$to); $ar_to = split("; ",$to); for($l=0; $ar_to[$l]; $l++){
    if(eregi("^"."[a-z0-9]+([_\\.-][a-z0-9]+)*"."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$ar_to[$l]))
    $rcpto[] = "<".strtolower($ar_to[$l]).">"; else $rcpto[] = strtolower($ar_to[$l]);}
    if(!$ar_to[0]) $ar_to[0]=$to;
    $headers = "X-Mailer: phpWebmail (http://dev.max-gamers.net)\r\n";
    $headers.= "Content-Type: text/plain\r\n";
    $mDate=date("D, d M Y H:i:s +0200");
    $headers .= "Date: $mDate\r\n";
    $fp = $SMTP->smtp_connect(chop($smtps[$user]), $smtpp[$user], $smtpauth[$user], $user, $pass);
    $Body = str_replace("\\\"","",$Body);
    $subject = str_replace("\\\\","\\",$subject);
    $subject = str_replace("\\\"","\"",$subject);
    $from = str_replace("\\\"","",$from);
    if($reply_to != "") $headers .= "Reply-To: ".$reply_to."\r\n";
    if($Urgent==1) $headers .= "X-Priority: 1 (highest)\r\n";
    if($ConfirmDelivery==1) $headers .= "Return-Receipt-To: $from\r\n";
    if($ConfirmRead==1) $headers .= "Disposition-Notification-To: $from\r\n";
    $mail = $SMTP->smtp_mail($fp, $from, $rcpto, $subject, $headers, $ar_to, $Body);

Med følgende class:

class SMTP
{

  function smtp_connect($str_Host="localhost",$int_Port=25,$int_Auth=0,$str_User,$str_Pass)
  {

    $qu = "phpWebmail\r\n";
    $fejlmeddelelse = "Det gik ikke helt";
    $noconnect = "Der kunne ikke connectes til $strHost";

    $fp = fsockopen ("$str_Host", $int_Port, $int_Err, $str_Err,1);

    if (!$fp)
    {
      die("$noconnect:
          <br><pre>$int_Err : $str_Err</pre>");
    }
   
    fputs ($fp, $qu, strlen($qu));
    $t[] = fgets($fp,100);
   
    if($int_Auth==1)
    {
        $qu = "AUTH LOGIN\r\n";
        fputs ($fp, $qu, strlen($qu));
        $t[] = fgets($fp, 200);
        fputs ($fp, base64_encode($str_User)."\r\n");
        $t[] = fgets($fp, 200);
        fputs ($fp, base64_encode($str_Pass)."\r\n"); 
        $t[] = fgets($fp, 200);
    }

    return $fp;
  }

  function smtp_mail ($fp, $str_From, $str_To, $str_Subject, $str_Headers, $ar_FTo, $str_Body)
  {
  global $t;
  if (!$fp) die($fejlmeddelelse);
 
  $qu = "MAIL FROM: $str_From\r\n";
  fputs($fp, $qu, strlen($qu));
  $t[] = fgets($fp,100);

  for($z=0;$ar_FTo[$z];$z++){ 
    $qu = "RCPT TO: ".$ar_FTo[$z]."\r\n";
    fputs($fp, $qu, strlen($qu));
    $t[] = fgets($fp, 100);
  }

  $qu = "DATA\r\nFrom: $str_From\r\n";
  fputs($fp, $qu, strlen($qu));

  if ($str_Headers)
  {
    $qu = $str_Headers;
    fputs($fp, $qu, strlen($qu));
  }

  $qu = "To: $str_FTo\r\nSubject: $str_Subject\r\n";
  fputs($fp, $qu, strlen($qu));

  $qu = "\r\n$str_Body\r\n.\r\n";
  fputs($fp, $qu, strlen($qu));
  $t[] = fgets($fp, 100);

  $qu = "QUIT\r\n";
  fputs ($fp, $qu, strlen($qu));
  $t[] = fgets($fp, 100);
  $t[] = fgets($fp, 100);
  fclose($fp);

  return $t;

  }


}
Avatar billede lsolesen Nybegynder
11. februar 2003 - 17:55 #1
En fejlmeddelelse er heller ikke af vejen:

52:25 +0100
500 5.3.3 Unrecognized command
503 5.5.2 Send hello first
503 5.5.2 Send hello first
503 5.5.2 Send hello first
Avatar billede lsolesen Nybegynder
11. februar 2003 - 18:04 #2
Nu fik jeg sat SMTP'en rigtig, men der er stadig en fejlmeddelelse:

503 Expected HELO command first
503 Expected HELO command first
503 Expected HELO command first
503 Expected HELO command first
221 OK
Avatar billede swaxi Nybegynder
11. februar 2003 - 18:50 #3
det kan være at din smtp server ikke understøtter auth-login

iøvrigt ... prøv http://phpmailer.sourceforge.net/ i stedet for (super godt stykke kode)
Avatar billede _darkstar_ Nybegynder
11. februar 2003 - 18:52 #4
Din SMTP-klasse understøtter ikke HELO. Det skal den for at du kan regne med at det virker.
Avatar billede _darkstar_ Nybegynder
11. februar 2003 - 18:53 #5
Jeg synes at det som swaxi foreslår er en god idé.
Avatar billede lsolesen Nybegynder
18. maj 2003 - 09:12 #6
Kunne desværre ikke bruge jeres løsning. Holder mig til PHP's interne mail-objekt.
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

DevOps Engineer (AI) til Forsvarets nye IT-platform

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-supporter til lokal IT Korsør

Forsvarets Efterretningstjeneste

Vil du arbejde med data science i FE?