Avatar billede ujo33 Nybegynder
10. september 2003 - 14:04 Der er 21 kommentarer og
1 løsning

smtp.php virker stadig ikke

Dette er fortsættelse af "Permission denied in smtp.php" http://www.eksperten.dk/spm/385298

Jeg resumér lige sagen hurtigt.
Først har det bøvle med rettighedsmæssigt på serveren pga. serveren er NT baseret (win 2000). Så har udbyderen selv givet adgang til alle 777. Jeg kunne nemlig ikke selv vha. FTP program, og det er pga. serveren kan ikke forstå "sproget".

Nu virker log-filen, MEN da jeg læst min log-fil stod der følgende:

-------------------------------------------
Sent 2003-09-10 08:47:32
-------------------------------------------
    220 MERCUR SMTP-Server (v4.01.08 MTE4My0xMDI0MS0xNzQyMA==) for Windows NT ready at Wed, 10 Sep 2003 08:47:32 -0200

HELO xyz 250 acwebs.ateam.gl Hello 127.0.0.1
MAIL FROM:kalaaleq@kalaaleq.com  250 <kalaaleq@kalaaleq.com>, sender ok
RCPT TO:jom@ral.gl 550 This address is not allowed
DATA 501 invalid Command in this state
Subject: Johannes Müller recommends this site
To:
MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1
From: kalaaleq@kalaaleq.com <kalaaleq@kalaaleq.com>
To: jom@ral.gl <jom@ral.gl>
.

Det ser ud som om at der er problemer med script inde i "smtp" eller "emailfriend" filerne.
Hvad kan det være?
Avatar billede zeled Nybegynder
10. september 2003 - 14:11 #1
Æh, det virker som om at den SMTP server du bruger ikke tillader .gl adresser...
Avatar billede ujo33 Nybegynder
10. september 2003 - 14:54 #2
Ja måske.

Men jeg kopér lige de 2 filers script, fordi jeg mener at de 2 filer som skulle ellers hænger sammen, kunne ikke 100 % snakke sammen pga. måske en lille script fejl.

Dette er fra emailfriend.php:

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Email Din Ven</TITLE>
<LINK REL=STYLESHEET TYPE="text/css" HREF="style.css">
</HEAD>
<body marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" rightmargin="0">
<?php include "vsadmin/db_conn_open.php" ?>
<?php include "vsadmin/includes.php" ?>
<?php include "vsadmin/inc/languagefile.php" ?>
<?php include "vsadmin/inc/incfunctions.php" ?>
<?php include "smtp.php" ?>
<table border='0' cellspacing='4' cellpadding='3' width='100%'>
<?php
    if(@$_POST["posted"]=="1"){
        $sSQL="SELECT adminEmail,adminStoreURL FROM admin WHERE adminID=1";
        $result = mysql_query($sSQL) or print(mysql_error());
        $rs = mysql_fetch_array($result);
        $emailAddr = $rs["adminEmail"];
        $adminStoreURL = $rs["adminStoreURL"];
        mysql_free_result($result);
        $seBody = "Your friend " . @$_POST["yourname"] . " (" . @$_POST["youremail"] . ") has recommended this site to you";
        if(trim(@$_POST["yourcomments"]) != ""){
            $seBody .= ", and sends you the following message:\n";
            $seBody .= trim(@$_POST["yourcomments"]) . "\n";
        }else
            $seBody .= ".\n";
        $seBody .= "\n" . $adminStoreURL . "\n";
        $headers = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
        $headers .= "From: " . $emailAddr . " <" . $emailAddr . ">\r\n";
        $headers .= "To: " . @$_POST["friendsemail"] . " <" . @$_POST["friendsemail"] . ">\r\n";
        $smtp = new smtp_client();
        $smtp->email($from_mail, $til_navn, $header, $_POST["yourname"] . " recommends this site", $body);
        $smtp->send();
?>
   
  <tr bgcolor="#66CC33">
    <td colspan="2" align="center" width="100%">&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2" align="center" width="100%"><p>&nbsp;</p>
      <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mange tak, din anbefaling
        er blevet sendt.</font></p>
      <p>&nbsp;</p>
      </td>
    </tr>
    <tr>
      <td colspan="2" align="center" width="100%"><input type="button" name="close" value="Luk vinduet" onClick="java script:self.close()">
      <p>&nbsp;</p>
      </td>
    </tr>
   
  <tr bgcolor="#66CC33">
    <td colspan="2" align="center" width="100%">&nbsp;</td>
    </tr>
<?php
    }else{
?>
<script Language="JavaScript">
<!--
function formvalidator(theForm)
{
  if (theForm.yourname.value == "")
  {
    alert("Please enter a value in the field \"Your Name\".");
    theForm.yourname.focus();
    return (false);
  }
  if (theForm.youremail.value == "")
  {
    alert("Please enter a value in the field \"Your Email\".");
    theForm.youremail.focus();
    return (false);
  }
  if (theForm.friendsemail.value == "")
  {
    alert("Please enter a value in the field \"Your Friends Email\".");
    theForm.friendsemail.focus();
    return (false);
  }
 
  return (true);
}
//-->
</script>
  <form method="POST" action="emailfriend.php" onSubmit="return formvalidator(this)">
    <input type="hidden" name="posted" value="1">
    <tr bgcolor="#66CC33">
      <td colspan="2" align="center" width="100%">&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2" align="center" width="100%">
        <table border='0' cellspacing='1' cellpadding='1' width='350'>
          <tr>
            <td width="100%"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Fortæl
              dine venner om dette site, så de også kan få glæde af vores produkter.
              </strong><br>
              Du skal bare udfylde nedenstående felter og s&aring; klik på &quot;send&quot;.</font></td>
          </tr>
        </table>
      </td>
    </tr>
    <tr>
      <td width="40%" align="right"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">*</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Dit
        Navn:</font></td>
<td><input type="text" name="yourname" size="30"></td>
    </tr>
    <tr>
      <td width="40%" align="right"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">*</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Din
        Email:</font></td>
<td><input type="text" name="youremail" size="30"></td>
    </tr>
    <tr>
      <td width="40%" align="right"><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">*</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Din
        vens Email:</font></td>
<td><input type="text" name="friendsemail" size="30"></td>
    </tr>
    <tr>
      <td colspan="2" align="center" width="100%">
        <table border='0' cellspacing='1' cellpadding='1' width='250'>
          <tr>
            <td width="100%">&nbsp;<br>
              <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Din kommentar:</font><br>
              <textarea name="yourcomments" cols="30" rows="5"></textarea>
            </td>
          </tr>
        </table>
      </td>
    </tr>
    <tr>
      <td colspan="2" align="center" width="100%"><input type="submit" name="Send" value="Send">&nbsp;&nbsp;
        <input type="button" name="close" value="Luk Vinduet" onClick="java script:self.close()">
      </td>
    </tr>
    <tr bgcolor="#66CC33">
      <td colspan="2" align="center" width="100%">&nbsp;</td>
    </tr>
  </form>
<?php
    } ?>
</table>
</BODY>
</HTML>

-----------

Dette er fra smtp.php:

<?php

// smtp_client class -------------------------------------------------------
// use:
//        $smtp=smtp_client();
//        $smtp->email($from, $to[0], $to_name[0], $header[0], $subject[0], $body[0]);
//        $smtp->email($from, $to[1], $to_name[1], $header[1], $subject[1], $body[1]);
//        $smtp->send();

class smtp_client {
    var $connection;
    var $server;
    var $elog_fp;
    var $log_file='./smtp_client.log';
    var $do_log=true;
   
   

    // default constructor
    function smtp_client($server='') {
        if (!$server) $this->server="localhost";
        else $this->server=$server;
       
        $this->connection = fsockopen($this->server, 25);
        if ($this->connection <= 0) return 0;

        $this->elog(fgets($this->connection, 1024));
        $this->elog("HELO xyz\r\n", 1);
        fputs($this->connection,"HELO xyz\r\n");
        $this->elog(fgets($this->connection, 1024));
        }

    function email($from_mail, $to_mail, $to_name, $header, $subject, $body) {
        if ($this->connection <= 0) return 0;
   
        $this->elog("MAIL FROM:$from_mail", 1);
        fputs($this->connection,"MAIL FROM:$from_mail\r\n");
        $this->elog(fgets($this->connection, 1024));

        $this->elog("RCPT TO:$to_mail", 1);
        fputs($this->connection, "RCPT TO:$to_mail\r\n");
        $this->elog(fgets($this->connection, 1024));

        $this->elog("DATA", 1);
        fputs($this->connection, "DATA\r\n");
        $this->elog(fgets($this->connection, 1024));
   
        $this->elog("Subject: $subject", 1);
        $this->elog("To: $to_name", 1);
        fputs($this->connection,"Subject: $subject\r\n");
        fputs($this->connection,"To: $to_name\r\n");

        if ($header) {
            $this->elog($header, 1);
            fputs($this->connection, "$header\r\n");
            }

        $this->elog("", 1);
        $this->elog($body, 1);
        $this->elog(".", 1);
        fputs($this->connection,"\r\n");
        fputs($this->connection,"$body \r\n");
        fputs($this->connection,".\r\n");
        $this->elog(fgets($this->connection, 1024));

        return 1;
        }


    function send() {
        if ($this->connection) {
            fputs($this->connection, "QUIT\r\n");
            fclose($this->connection);
            $this->connection=0;
            }
        }

    function close() { $this->send(); }


    function elog($text, $mode=0) {
        if (!$this->do_log) return;

        // open file
        if (!$this->elog_fp) {
            chmod ($this->log_file, 0755);
            if (!($this->elog_fp=fopen($this->log_file, 'w+'))) return;
            fwrite($this->elog_fp, "\n-------------------------------------------\n");
            fwrite($this->elog_fp, " Sent " . date("Y-m-d H:i:s") . "\n");
            fwrite($this->elog_fp, "-------------------------------------------\n");
            }



        // write to log
        if (!$mode) fwrite($this->elog_fp, "    $text\n");
        else fwrite($this->elog_fp, "$text\n");
        }
    }


?>
Avatar billede ujo33 Nybegynder
10. september 2003 - 14:55 #3
Kan det godt tænkes?
Avatar billede ujo33 Nybegynder
10. september 2003 - 14:56 #4
Lige nu siger log-filen :


-------------------------------------------
Sent 2003-09-10 10:50:35
-------------------------------------------
    220 MERCUR SMTP-Server (v4.01.08 MTE4My0xMDI0MS0xNzQyMA==) for Windows NT ready at Wed, 10 Sep 2003 10:50:35 -0200

HELO xyz
    250 acwebs.ateam.gl Hello 127.0.0.1
MAIL FROM:
    501 Syntax Error
RCPT TO:
    501 invalid Command in this state
DATA
    501 invalid Command in this state
Subject:
To:
Johannes Müller recommends this site
.501 Syntax Error
Avatar billede zeled Nybegynder
10. september 2003 - 15:06 #5
Hmmm... viker som om at $from_mail er blank.... prøv evt. med $_POST['from_mail']

Det er denne linie jeg mener:
$smtp->email($from_mail, $til_navn, $header, $_POST["yourname"] . " recommends this site", $body);
Avatar billede ujo33 Nybegynder
10. september 2003 - 15:20 #6
efter jeg har insat
$smtp->email($from_mail, $_POST["from_mail"], $_POST["friendsemail"], $til_navn, $header, $_POST["yourname"] . " recommends this site", $body);

så siger log-filen:


-------------------------------------------
Sent 2003-09-10 11:24:45
-------------------------------------------
    220 MERCUR SMTP-Server (v4.01.08 MTE4My0xMDI0MS0xNzQyMA==) for Windows NT ready at Wed, 10 Sep 2003 11:24:45 -0200
HELO xyz
    250 acwebs.ateam.gl Hello 127.0.0.1
MAIL FROM:
    501 Syntax Error
RCPT TO:
    501 invalid Command in this state
DATA
    501 invalid Command in this state
Subject:
To: jom@ral.gl
Johannes Müller recommends this site
.
501 Syntax Error
Avatar billede ujo33 Nybegynder
10. september 2003 - 15:23 #7
Når du kigger på smtp koderne og den anden kan man se at den ene bruger dansk text og den anden bruger engelsk.
Kan det være den der laver bøvl?
Avatar billede ujo33 Nybegynder
11. september 2003 - 13:07 #8
Jeg har lidt ændret med min script og log-filen siger nu...


-------------------------------------------
Sent 2003-09-11 09:02:34
-------------------------------------------
    220 MERCUR SMTP-Server (v4.01.08 MTE4My0xMDI0MS0xNzQyMA==) for Windows NT ready at Thu, 11 Sep 2003 09:02:34 -0200

HELO xyz

    250 acwebs.ateam.gl Hello 127.0.0.1

MAIL FROM:
    501 Syntax Error

RCPT TO:ujopajuk@hotmail.com
    501 invalid Command in this state

DATA
    501 invalid Command in this state

Subject: MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1
From: kalaaleq@kalaaleq.com <kalaaleq@kalaaleq.com>
To: jom@ral.gl <jom@ral.gl>

To: jom@ral.gl

Johannes Müller recommends this site
.
    501 Syntax Error

---------------

Jeg har ændret lidt på smtp script, og lige nu ser sådan ud:

$smtp->email($fra_mail, $_POST["youremail"], $_POST["friendsemail"], $to_name, $headers, $_POST["yourname"] . " recommends this site", $seBody);
Avatar billede zeled Nybegynder
11. september 2003 - 13:30 #9
Prøv:

$fra_mail rettes til $_POST['fra_mail']
Avatar billede ujo33 Nybegynder
11. september 2003 - 14:42 #10
Det ser ud til at det går bedre, men den sender stadig ikke mailen.

Log-filen siger jo...


-------------------------------------------
Sent 2003-09-11 10:44:09
-------------------------------------------
    220 MERCUR SMTP-Server (v4.01.08 MTE4My0xMDI0MS0xNzQyMA==) for Windows NT ready at Thu, 11 Sep 2003 10:44:09 -0200

HELO xyz

    250 acwebs.ateam.gl Hello 127.0.0.1

MAIL FROM:
    501 Syntax Error

RCPT TO:jom@ral.gl
    501 invalid Command in this state

DATA
    501 invalid Command in this state

Subject: Johannes Müller recommends this site
To:
MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1
From: kalaaleq@kalaaleq.com <kalaaleq@kalaaleq.com>
To: jom@ral.gl <jom@ral.gl>


Your friend Johannes Müller (ujopajuk@hotmail.com) has recommended this site to you, and sends you the following message:
test2

http://www.kalaaleq.gl/shop

.
Avatar billede zeled Nybegynder
11. september 2003 - 14:58 #11
Hvor kommer FRA_MAIL fra????
Avatar billede zeled Nybegynder
11. september 2003 - 15:08 #12
prøv evt. denne her:

$smtp->email("admin@kalaaleq.gl", $_POST["youremail"], $_POST["friendsemail"], $to_name, $headers, $_POST["yourname"] . " recommends this site", $seBody);
Avatar billede ujo33 Nybegynder
11. september 2003 - 15:51 #13
Det bliver bedre og bedre.. nu begynder den at sende mail. MEN den skulle ellers være omvendt ! Dvs. lige nu modtageren er mig !
Det ting som er ikke korrekt er:

Afsenderen er den generelle email adresse: kalaaleq@kalaaleq.com (Det er ellers kun internetudbyderen der skulle ellers vide denne mail, Og den skal ellers stå ujopajuk@hotmail.com)
Overskriftet står sådn' her: MIME-Version: 1.0
Indhold "Body" starter med "til adressen":  To: jom@ral.gl  Johannes Müller recommends this site
hvor den mangler link og mere tekst.

Log-filen siger nu:


-------------------------------------------
Sent 2003-09-11 11:41:27
-------------------------------------------
    220 MERCUR SMTP-Server (v4.01.08 MTE4My0xMDI0MS0xNzQyMA==) for Windows NT ready at Thu, 11 Sep 2003 11:41:27 -0200

HELO xyz

    250 acwebs.ateam.gl Hello 127.0.0.1

MAIL FROM:admin@kalaaleq.gl
    250 <admin@kalaaleq.gl>, sender ok

RCPT TO:ujopajuk@hotmail.com
    250 User not local; will forward to <ujopajuk@hotmail.com>

DATA
    354 Start mail input, terminate with '<CRLF>.<CRLF>'

Subject: MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1
From: kalaaleq@kalaaleq.com <kalaaleq@kalaaleq.com>
To: jom@ral.gl <jom@ral.gl>

To: jom@ral.gl

Johannes Müller recommends this site
.
    250 218 bytes received in 0,16 seconds; Message accepted for delivery
Avatar billede ujo33 Nybegynder
11. september 2003 - 16:09 #14
Undskyld ! modtageren er FINT nok. Det er korrekt.
Og jeg tror afsenderen skal være sådn hvis det skal virke, ik? Eller hvad?
Avatar billede zeled Nybegynder
11. september 2003 - 16:13 #15
Det kommer meget an på hvem du vil have som afsender...

Skal det være den email som tastes ind som Afsender mail?
Eller skal det være den samme adresse hvergang?
Avatar billede ujo33 Nybegynder
11. september 2003 - 16:18 #16
UNDSKYLD IGEN ! Det virker !
YES... Jeg vil hermed sige 1000 tak for hjælpen og håber du vil hjælpe mig igen i det nærmste dage ;-) Fordi jeg mangler også ordre mailen...
Men jeg afslutter lige dette sag og hvis du skrive som "Svar" i dette side SAMT i den anden side(http://www.eksperten.dk/spm/385298
),  skal jeg nok gi' i alt 120 point til dig. Jeg synes du har fortjent det :-)
Kan du så hjælpe mig med ordremailen ? Jeg skal nok oprette nyt spørgsmål.
Avatar billede zeled Nybegynder
11. september 2003 - 16:22 #17
ja, jeg skal nok hjælpe dig med det næste.... notify mig på jepe@chatweb.dk med komplet link....
Avatar billede ujo33 Nybegynder
11. september 2003 - 16:30 #18
Det lyder godt og værsgo !
Avatar billede zeled Nybegynder
11. september 2003 - 16:36 #19
Og så er der postet svar i den anden tråd :D
Avatar billede tipsen Nybegynder
11. september 2003 - 21:14 #20
Var der fejl i selve SMTP-klassen eller blot den måde den blev brugt på?
Avatar billede zeled Nybegynder
11. september 2003 - 21:16 #21
Måden den blev brugt på....

Den første parameter var blank, fordi variablen ikke eksisterede.... da den blev sat til en fast værdi (det er afsender feltet i mailen) så virkede det....
Avatar billede tipsen Nybegynder
11. september 2003 - 22:33 #22
Ok - fint nok :-)
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