Código fuente SMTP de correo electrónico
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)
{ p>
$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>
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);
} p>
Función smtpmail($fromemail, $fromname, $toemail, $toname, $asunto, $body, $attachment=null, $attachmenttype= "texto")
{
$ this- gt; sujeto = $ sujeto
$ this- gt; $ toname
$ this- gt = $ fromname p>
$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
} 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
); $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
}