Red de conocimiento informático - Programación de la red - Código fuente SMTP de correo electrónico

Código fuente SMTP de correo electrónico

¿Es? Lenguaje de programación del lado del servidor (abreviatura de Preprocesador de hipertexto profesional)

if ($email_inc) devuelve;

$ email _ inc = " definido

define( " smtpport ", 25);

nivel pop3 {

var $ asunto//asunto del correo electrónico

var $ de _ correo electrónico//dirección del remitente

var $ de _ nombre//Nombre del remitente

var $ a _ correo electrónico//Dirección del destinatario

var $ a _ nombre// Nombre del destinatario

var $ cuerpo//contenido del correo electrónico

var $ nombre de archivo//nombre de archivo

var $ socket//socket actual

var $ línea

var $status;

Función pop 3_open($servidor, $puerto)

{

$this-gt;socket = fsockopen($servidor ,$port);

if ($this-gt;socketlt=0){

devuelve falso

}

$ esto - gt; línea = fgets($ this- gt; socket, 1024);

$ this- gt; estado[ " último resultado "]= substr($ this- gt; fila, 0, 1) ;

$ this- gt; status[" último resultado txt "]= substr($ this- gt; fila, 0, 1024);

Si ($this- gt; estado ["último resultado"] lt; gt "") devuelve falso

Devuelve verdadero

}

Función pop3_user($usuario)

{

si ($this-gt; socket lt0){

devuelve falso

}

fputs($this- gt; socket, "usuario $this-gt;usernn");

$this-gt; línea = fgets($this-gt; socket, 1024);

$this -gt; estado["último resultado"]= substr($this-gt;line, 0, 1);

p>

$this-gt;status["último resultado txt "]= substr( $this-gt;line,0,1024);

si ($this-gt;status[" último resultado "] lt; gt" ") devuelve falso

Devuelve verdadero

}

Función pop3_pass($pass)

{

fputs($this-gt;socket,"pass$passrn" );

$this-gt;line = fgets($this-gt;socket,1024);

>

$this-gt;status["último resultado"]= substr($this-gt;row,0,1);

$this-gt;status["último resultado txt" ]= substr($this-gt; fila, 0, 1024);

if ($this-gt; status["último resultado"]lt;gt"") devuelve 0;

Retorno 1;

}

Función pop3_stat()

{

fputs($ this- gt; socket, " statrn ");

$ this- gt; line = fgets($ this- gt; socket, 1024);

$ this- gt; status[" último resultado "]= substr($this-gt; línea, 0, 1);

$this-gt; estado[" último resultado txt "]= substr($this-gt; línea, 0, 1024);

If ($this- gt; status [" último resultado "] lt; gt " ") devuelve 0

If (!eregi( " ok(.

*) (.*)", $this-gt; línea, $regs))

return 0;

return $regs[1];

}

Función pop3_list()

{

fputs($ this- gt; socket, "listrn");

$ this; - gt;line = fgets($this-gt;outlet,1024);

$this-gt;status["último resultado"]=substr($this-gt;line,0,1) ;

$this-gt;status["último resultado txt"]= substr($this-gt;row,0,1024);

if ($this-gt; status["último resultado"]lt;gt"") devuelve 0;

$I = 0;

while(substr($this- gt;line = fgets($this - gt; socket, 1024), 0, 1) lt; gt ".")

{

$ artículos[$I]= $this- gt;línea;

p>

$ i ;

}

$ artículos[" count "]= $ I;

Devolver $ artículos

}

Función pop3_retr($nr)

{

fputs($ this- gt; socket, " retr $ nrrn ")

$this-gt;line = fgets($this-gt;socket, 1024);

$this-gt;status["último resultado"]= substr($ this-gt;line , 0, 1);

$ this- gt; status[" último resultado txt "]= substr($ this- gt; fila, 0, 1024);

If ( $this-gt;status["último resultado"]lt;gt"")return 0;

while(substr($this-gt;line = fgets($this-gt ;socket, 1024) , 0, 1) lt; gt ".")

{

$ datos[$ I]= $ esta- gt;

$ i ;

}

$ datos[" count "]= $ I;

Devuelve $ datos

}

Función pop3_dele( $nr)

{

fputs($ this- gt; socket, "dele $ nrrn "); >$ this-gt ;line = fgets($this-gt; socket, 1024);

$this-gt; status["último resultado"]= substr($this-gt;line, 0 , 1);

$ this- gt; status[" último resultado txt "]= substr($ this

- gt; fila, 0, 1024);

if ($this- gt; estado["último resultado"] lt; gt "") devuelve

devuelve 1;

}

Función pop3_quit()

{

fputs($ this- gt; socket, "quitrn"

); p>

p>

$this-gt;line = fgets($this-gt;socket,1024);

$this-gt;status["último resultado"]= substr ($this-gt ; Fila, 0, 1);

$ this- gt; estado[" último resultado txt "]= substr($ this- gt; Fila, 0, 1024); p>

if ($this- gt; status [" último resultado "] lt; gt " ") devuelve 0

devuelve 1;

}

clase smtp{

var $ asunto//Cadena asunto del correo electrónico

var $ fromname//Cadena nombre del remitente (opc.)

var $ toname//Nombre del destinatario de la cadena (opt)

var $ body//Copia del cuerpo de la cadena

var $attachment; //Adjunto (opcional)

p>

var $ tipo adjunto

var $ socket

var $ línea

var $estado;

Función smtp($ servidor = "localhost ", $puerto = smtpport)

{

return $this->open($servidor, $puerto);

}

Función smtpmail($fromemail, $fromname, $toemail, $toname, $asunto, $body, $attachment=null, $attachmenttype= "texto")

{

$ this- gt; sujeto = $ sujeto

$ this- gt; $ toname

$ this- gt = $ fromname

$this-gt;body = $body

$this-gt;attachment = $adjunto;

$this-gt;tipo de adjunto = $tipo de adjunto

if($this->helo() == false){

return false

}

if($this - gt;mailfrom( $fromemail) == false){

return false

}

if ($this- gt;rcptto($toemail) = = false){

devuelve falso

}

if ($this- gt; body() == false){

Devuelve falso

}

>

if($this->quit() == false){

return false

}

}

función open($servidor, $puerto)

{

$this->socket = fsockopen($servidor, $puerto);

if ( $this -gt; socket lt0) devuelve falso

$this-gt; line = fgets($this-gt; socket, 1024);

$this-gt estado[" último; resultado "]= substr($ this- gt; fila, 0, 1);

$ this- gt; estado[" último resultado txt "]= substr($ this- gt; filas, 0, 1024);

si ($this-gt;status["last result"]lt;gt"2") devuelve falso

devuelve verdadero

}

Función helo()

{

if(fputs($this- gt; socket, " helorn ") lt; 0 ){

Devuelve falso

}

$ this- gt; line = fgets($ this- gt; socket, 1024

$this-gt); ;status["último resultado "]= substr($this-gt;row,0,1);

$this-gt;status["último resultado txt"]= substr( $this-gt ; fila, 0, 1024);

si ($this-gt;status["last result"]lt;gt"2") devuelve falso

devuelve verdadero

}

Función ehlo()

{

/*Está bien, ahora usamos "silo". Hasta que necesitemos

Funcionalidad adicional [Desconocida]

*/

if(fputs($this-gt;socket," helo localhostrn")lt;0) {

Devuelve falso

}

$ this- gt; line = fgets($ this- gt; socket, 1024

$this-gt; estado["último resultado "]= substr($this-gt;row,0,1);

$this-gt;status["último resultado txt"]= substr ($this-gt; fila, 0, 1024);

Si ($this-gt; status["last result"]lt;gt"2") devuelve falso

Devuelve verdadero

}

Función mailfrom($fromemail)

{

if(fputs($ this- gt; socket," mail from: lt;$ fromemail gtrn") lt;0){

Devuelve falso

}

>

$this-gt;line = fgets($this-gt;socket,1024);

$this-gt;status["último resultado"]= substr($this-gt; Fila, 0, 1);

$this-gt;status["último resultado txt"]= substr($this-gt;Fila, 0,1024);

Si ($ this- gt; status [" último resultado "] lt; gt " 2 ") devuelve falso

Devuelve verdadero

}

Función rcptto($ toemail)

{

if(fputs($this- gt; socket, "rcpt to: lt; $toemail gtrn") lt; 0){

Devuelve falso

}

$ this- gt; line = fgets($ this- gt; socket, 1024

$ this- gt ;status); [" último resultado "]= substr($ this- gt; fila, 0, 1);

$ this- gt; estado[" último resultado txt "]= substr($ this- gt; fila , 0, 1024);

si ($this- gt; status ["último resultado"] lt; gt "2") devuelve falso

devuelve verdadero

}

Cuerpo de función()

{

$ tamaño de archivo = 0;

$ archivo adjunto = nulo

$ fp = null

$ buffer = sprintf(" de: srn a: srn asunto: srn ", $ this- gt; fromname, $ this- gt; toname, $ this- gt ; Tema );

if(fputs($this- gt;socket, "datarn") lt;0){

Devuelve falso

}

$this-gt;line = fgets($this-gt;socket,1024);

$this-gt;status["último resultado"]= substr($this-gt ; Fila , 0, 1);

$ this- gt; estado[" último resultado txt "]= substr($ this- gt; Fila, 0, 1024

); $this-gt;status["último resultado"]lt;gt"3")return false

if(fputs($this-gt;socket,$buffer)lt;0){

Devuelve falso

}

if ($ this- gt; adjunto == vacío) {

if (fputs($ this- gt; socket,"mime-version:1.0 rn tipo de contenido:text/plain;charset=iso-8859-1r

n codificación-transferencia-de-contenido: 7 bitrnrn ") lt; 0){

Devuelve falso

}

if(fputs($ this- gt;set interfaz, " $ this- gt; body rnrn ") lt; 0) {

Devuelve falso

}

if(fputs($ this- gt; socket,".rn") lt;0){

Devuelve falso

}