Avatar billede glennf Nybegynder
24. marts 2005 - 10:42 Der er 20 kommentarer

udsende mails

Hej

Jeg fandt dette script til at udsende mange mails på Zend.
Det fungerer fint, mit problem er dog, at SMTP serveren kræver godkendelse, er der nogen der kender til lignende scripts hvor dette er implementeret?

Her er scriptet
<?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='') { //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");
        }
    }
//variablene for mailen sættes   
$from = "";
$tomail = "";
$toname = "GF";
$header = "";
$subject = "";
$body = "";
// SMTP forbindelsen åbnes og mailenesendes.
$smtp = new smtp_client();
$smtp->email($from, $tomail, $toname, $header, $subject, $body);
$smtp->send();
?>


Mvh Glennf
Avatar billede jakobdo Ekspert
24. marts 2005 - 11:59 #1
Kan du ikke forsøge at forbinde til en anden smtp-server?

Du kan teste disse: http://wwi.dk/site/461.htm
Avatar billede gf Nybegynder
24. marts 2005 - 12:52 #2
Hej

Jo det kan jeg let, men det er da vist ikke helt lovligt, at bruge en anden smtp-server er det?

mvh Glennf
Avatar billede jakobdo Ekspert
24. marts 2005 - 12:55 #3
Er det din egen webserver?
Eller står den hos din udbyder?

Jeg ved ikke om man kan sige ulovligt at bruge en anden.
F.eks. har jeg Tiscali/Tele2 som udbyder, og der er det da lovligt at jeg bruger deres smtp-server.

Men test, der kan jo ikke ske andet end at det ikke vil virke.
Avatar billede gf Nybegynder
24. marts 2005 - 14:54 #4
Hej

Jeg kan fint bruge nogle af de smtp servere du foreslår og det virker glimrende, men det er blandt andet nyhedsbreve jeg skal sende ud, så jeg er ikke vild med at skulle bruge andre udbyderes servere.

mvh Glennf
Avatar billede jakobdo Ekspert
24. marts 2005 - 14:58 #5
Har du egen mailserver / webserver ?
Avatar billede jakobdo Ekspert
24. marts 2005 - 14:59 #6
Som der jo også står i funktionen:

function smtp_client($server='') { //din udbyders smtp server
Så du skal jo bruge den udbyders smtp-server.
Avatar billede jakobdo Ekspert
24. marts 2005 - 14:59 #7
Og hvis du ikke vil sende via smtp-server, hvordan vil du så sende emails?
Avatar billede gf Nybegynder
24. marts 2005 - 15:08 #8
Ok, jeg starter lige forfra

jeg vil gerne bruge min udbyders smtp server i den lilie du omtaler har jeg også skrevet denne. problemet er: "min udbyder kræver godkendelse for at kunne sende fra serveren".
I scriptet er der ikke mulighed for at angive brugernavn og password til serveren, derfor spurgte jeg om der var nogen der kender til et lignende script hvor det er muligt at angive disse.

Scriptet virker upåklageligt.

nej vi har ikke vores egen mailserver.

mvh Glennf
Avatar billede jakobdo Ekspert
24. marts 2005 - 15:18 #9
Hvem har du som udbyder?
Avatar billede gf Nybegynder
24. marts 2005 - 15:37 #10
scannet
Avatar billede jakobdo Ekspert
24. marts 2005 - 15:50 #11
Auth opmod en smtp-server, er da "bare" et par ekstra linier så hudt jeg visker.

Så det burde være muligt at tilføje et par ekstra linier som så "Logger" din ind inden du sender emails.
Avatar billede gf Nybegynder
24. marts 2005 - 15:53 #12
ok

Har du en ide til hvordan det gribes an?

mvh gf
Avatar billede jakobdo Ekspert
24. marts 2005 - 15:55 #13
Måske!
Prøv at giv mig host/ip på scannet's smtpserver?
Avatar billede jakobdo Ekspert
24. marts 2005 - 15:57 #14
Er lige faldet over denne side på scannet's side:

http://www.scannet.dk/frame.asp?url=http://www.scannet.dk/support/Netsmtp.htm

Har du prøvet et teste om du kan sende via:

mail.ditDomæne.dk
Avatar billede gf Nybegynder
24. marts 2005 - 15:59 #15
er

mail.ladelundefterskole.dk

nok?
Avatar billede gf Nybegynder
24. marts 2005 - 16:00 #16
ja det kan jeg ikke
Avatar billede jakobdo Ekspert
24. marts 2005 - 16:05 #17
Som jeg ser det, så kan man slet ikke blive godkendt på den!
Eller måske det bare er mig!

Men

504 auth mechanism not supported
Avatar billede jakobdo Ekspert
24. marts 2005 - 16:06 #18
Har du ikke internet igennem TDC?
Avatar billede gf Nybegynder
24. marts 2005 - 16:09 #19
Vores skole er opkoblet til sektornet godt nok på TDC's fastnet men det tæller vist ikke :)

mvh gf
Avatar billede jakobdo Ekspert
24. marts 2005 - 16:35 #20
Jeg må nok snart give op!
Prøv evt at brug: host: localhost
Hvis ikke det virker, så smid scannet en email og spørg! :o)

Det ville være mærkeligt du var den første som ville sende en email via php/scannet!
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