/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
PHPs mail() og SMTP-autentifikation.
Fra : Jack L.


Dato : 22-03-07 16:34

Hej med jer.

(håber at dette er den tætteste gruppe ift. emnet jeg er kommet på!)

Jeg sidder her med en FreeBSD-server 5.4, som ikke længere kan sende
mails med PHP-funktionen mail(). Det skyldes med stor sandsynlighed at
vores ISP nu har aktiveret SMTP-autentifikation, så disse oplysninger
skal indtastes et eller andet sted, men hvor?

Jeg har foreløbig fundet frem til to filer, hvor der muligvis skal
rettes, og det er /etc/mail/sendmail.cf samt /usr/local/etc/php.ini
(jvf. kilde A). Jeg formoder at mail()-funktionen anvender sendmail
til selve afsendelsen. I /etc/mail/ ser jeg en række .mc-filer men
ingen sendmail.mc, hvilket jeg har forstået er den fil man redigerer i
før man bygger .cf-filen.

Kilde B viser et langhåret eksempel på hvordan det kan gøres, men 1)
det ligner en meget langhåret procedure, 2) det virker lidt farligt at
copy & paste kilde B's sendmail-opsætning for jeg risikerer at miste
specifikke tilpasninger 3) kan det virkelig være rigtigt at man skal
gå igennem denne for at tilføje brugernavn og kodeord for at kunne
sende mails igen?

Ethvert svar til en mindre langhåret procedure vil blive modtaget med
kyshånd!

Hilsen Jack

A: http://www.freebsdmadeeasy.com/tutorials/web-server/install-php-5-for-web-hosting.php

B: http://www.falkotimme.com/howtos/sendmail_smtp_auth_tls/


 
 
Thorbjørn Ravn Ander~ (23-03-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 23-03-07 07:14

"Jack L." <photonatic@gmail.com> writes:

> Ethvert svar til en mindre langhåret procedure vil blive modtaget med
> kyshånd!

Lægge en SMTP-server på selve maskinen, sætte den op til at foretage
det nødvendige, og lade dit PHP5 script sende via localhost i stedet.
--
Thorbjørn Ravn Andersen

Jesper Staun Hansen (23-03-2007)
Kommentar
Fra : Jesper Staun Hansen


Dato : 23-03-07 12:47

Jeg har følgende liggende:
>    /**
>     * Performs SMTP authentication. Must be run after running the
>     * Hello() method. Returns true if successfully authenticated.
>     * @access public
>     * @return bool
>     */
>    function Authenticate($username, $password) {
>       // Start authentication
>       fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF);
>
>       $rply = $this->get_lines();
>       $code = substr($rply,0,3);
>
>       if($code != 334) {
>          $this->error =
>             array("error" => "AUTH not accepted from server",
>                 "smtp_code" => $code,
>                 "smtp_msg" => substr($rply,4));
>          if($this->do_debug >= 1) {
>             echo "SMTP -> ERROR: " . $this->error["error"] .
>                    ": " . $rply . $this->CRLF;
>          }
>          return false;
>       }
>
>       // Send encoded username
>       fputs($this->smtp_conn, base64_encode($username) . $this->CRLF);
>
>       $rply = $this->get_lines();
>       $code = substr($rply,0,3);
>
>       if($code != 334) {
>          $this->error =
>             array("error" => "Username not accepted from server",
>                 "smtp_code" => $code,
>                 "smtp_msg" => substr($rply,4));
>          if($this->do_debug >= 1) {
>             echo "SMTP -> ERROR: " . $this->error["error"] .
>                    ": " . $rply . $this->CRLF;
>          }
>          return false;
>       }
>
>       // Send encoded password
>       fputs($this->smtp_conn, base64_encode($password) . $this->CRLF);
>
>       $rply = $this->get_lines();
>       $code = substr($rply,0,3);
>
>       if($code != 235) {
>          $this->error =
>             array("error" => "Password not accepted from server",
>                 "smtp_code" => $code,
>                 "smtp_msg" => substr($rply,4));
>          if($this->do_debug >= 1) {
>             echo "SMTP -> ERROR: " . $this->error["error"] .
>                    ": " . $rply . $this->CRLF;
>          }
>          return false;
>       }
>
>       return true;
>    }


Du skal så bruge lidt mere tekst end det, da du også skal bruge
$smtp_conn som du skal oprette. Samme gælder get_lines() funktionen.
Det er da inspiration.

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste