Avatar billede jammerlab Nybegynder
06. januar 2007 - 17:55 Der er 12 kommentarer og
1 løsning

Problemer med en mail class login

Goddag derude jeg faldt over denne clas i nogle spørgsmål om det sammen men jeg har lidt problemer med den:

<?php
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='customer-smtp.one.com') { //din udbyders smtp 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) {
            if (!($this->elog_fp=fopen($this->log_file, 'a'))) 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");
        }
    }

mysql_connect("localhost", "***" ,"***") or die (mysql_error());
mysql_select_db("***") or die (mysql_error());

$res = mysql_query("select til, navn from test") or die (mysql_error());

$from = "test@kalendersystem.dk"; //din egen mail :-)
$header = "Content-type: text/plain; charset=ISO-8859-1";
$subject = "Test af fsockopen()";
$body = "Dette er en test";

$smtp = new smtp_client;
$smtp -> smtp_client();

while (list($til, $navn) = mysql_fetch_row($res)) {
  $smtp->email("$from", "$til", "$navn", "$header", "$subject", "$body");
  }

$smtp->send();
mysql_close();
?>

I min database har jeg laver 2 felter så den kører 2 gange det ser også ud til at virke, men den sender ingen mails...

-------------------------------------------
Sent 2007-01-06 17:51:36
-------------------------------------------
    220 csmtp1.b-one.net ESMTP Postfix (Debian/GNU)

HELO xyz

    250 csmtp1.b-one.net

    220 csmtp1.b-one.net ESMTP Postfix (Debian/GNU)

HELO xyz

    250 csmtp1.b-one.net

MAIL FROM:test@kalendersystem.dk
    250 Ok

RCPT TO:talker3333@hotmail.com
    553 <test@kalendersystem.dk>: Sender address rejected: not logged in

DATA
    554 Error: no valid recipients

Subject: Test af fsockopen()
To: Ronnie1
Content-type: text/plain; charset=ISO-8859-1

Dette er en test
.
    221 Error: I can break rules, too. Goodbye.

MAIL FROM:test@kalendersystem.dk
   
RCPT TO:talker3333@hotmail.com
   
DATA
   
Subject: Test af fsockopen()
To: Ronnie2
Content-type: text/plain; charset=ISO-8859-1

Dette er en test
.
   
Den snakker om at jeg ikke er logget ind? Det er som om den ikke mener jeg har indtastet en rigtig "fra mail" hvis jeg forstår den korrekt...
Avatar billede erikjacobsen Ekspert
06. januar 2007 - 19:25 #1
Kører du den fra en b-one server - eller et andet sted fra?
Du kan (med normal opsætning i hvert fald) ikke sende mails fra en fremmed SMTP-server - i nogle tilfælde kan man, hvis man logger ind via SMTP-protokollen.
Avatar billede jammerlab Nybegynder
06. januar 2007 - 19:26 #2
jeg er på b-ones server:

Kan jeg bruge jeres SMTP server?
Hvis din udbyders mail server er langsom, eller at du ikke har mulighed for at sende via denne, kan du sende e-mails via vores udgående (SMTP) mailserver.

Det kræver at du logger ind på vores SMTP server hvilket du ikke behøver hvis du bruger din udbyders server. Dette gøres for at sikre at mailserveren ikke kan misbruges til at sende SPAM (uønsket reklame mail). For at logge ind på vores SMTP server skal dit mailprogram opsættes så det benytter SMTP godkendelse.

I f.eks. Outlook Express gøres dette ved at markere indstillingen "min server kræver godkendelse".

I SMTP server skal der skrives: customer-smtp.one.com
Avatar billede erikjacobsen Ekspert
06. januar 2007 - 19:33 #3
Jo, men - det script du viser her, afvikles det på på en b-one server?
Avatar billede jammerlab Nybegynder
06. januar 2007 - 19:36 #4
ja :)
Avatar billede erikjacobsen Ekspert
06. januar 2007 - 19:45 #5
Nu kender jeg megalidt til b-one, eller hvad de hedder i dag. Men jeg kunne forledes til at tro, at den der customer-smtp.one.com kun er een der skal benyttes udefra, som det egentlig kan læses i det du har klippet. Indefra på deres servere, kan det sagtens være en anden SMTP-server du skal bruge.
Avatar billede jammerlab Nybegynder
06. januar 2007 - 20:02 #6
har prøvet at kører den fra localhost med set_timelimit(240); og den timer ud.. som om den ikke kan få forbindelse...
Avatar billede erikjacobsen Ekspert
06. januar 2007 - 20:03 #7
Det er næppe heller localhost. Hvad sige b-one om SMTP fra serverscripts?
Avatar billede jammerlab Nybegynder
06. januar 2007 - 21:18 #8
pas.. jeg ved at de har sagt god for en mail(); lykke op til 150 mails om dagen men læste her på eksperten at det skulle man aboslut ikke gøre, men istedet bruge muligheden i at forbinde direkte til smtp serveren.
Avatar billede erikjacobsen Ekspert
06. januar 2007 - 21:21 #9
Pas? Det kan da ikke være meningen at vi andre skal finde informationer til dig på b-ones sider. Et par klik og så:

Kan jeg sende mails fra min webside?
Hvis du ønsker at sende e-mails fra din web-side via et script kan dette naturligvis godt lade sig gøre. Her skal du bruge vores interne smtp-serveradresse: mailout.one.com.
Avatar billede jammerlab Nybegynder
06. januar 2007 - 21:41 #10
Beklager Erik den så jeg ik...
Avatar billede jammerlab Nybegynder
06. januar 2007 - 21:44 #11
Så virker det også det var det der skulle til.
Smid et svar :) - Tak.
Avatar billede erikjacobsen Ekspert
06. januar 2007 - 21:49 #12
;) Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
Avatar billede jammerlab Nybegynder
06. januar 2007 - 21:53 #13
Fornuftigt :) Tak skal du havde.
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging