jueves, 25 de abril de 2013

Snips en JavaScript

Snips en JavaScript

1.- Para eliminar espacios en blanco de ciertas palabras o frases
   
//-Modo de uso: $("#nombre").attr('value',$('#nombre').val().noSpace(); 
String.prototype.noSpace = function() {
  return this.replace(/(^\s*)|(\s*$)|[ ]/g, "");                
};

2.- Para eliminar caracteres especiales de ciertas palabras o frases
   
//Modo de uso: $("#nombre").attr('value',$('#nombre').val().noCaracteSpecial();
String.prototype.noCaracteSpecial = function() {
   return this.replace(/[^a-zA-Z 0-9.]+/g,' ');
};  

3.- Deshabilitar copiar, pegar y menu contextual de la web
   
$("#content").bind("contextmenu copy paste", function(e) {return  false;});  

4.- Calcular automáticamente el ancho y alto del navegador, y mostrarlo las dimensiones en un div
   
/**
 * Resize
 */
jQuery(document).ready(function($) {
    redimencionar();
    $(window).resize(redimencionar);
});
function redimencionar() {
    jQuery(document).ready(function($) {
        var height = $(window).height();
        var width = $(window).width();
        $('body').append('<div class="wmb" style="display: block;position: fixed;left: 0;top: 0;color: green;font-family: Arial;font-size: 12px;"></div>');
        $('.wmb').html('Screen: ' + width + ' x ' + height);
    });
}
/**
 * End Resize
 */

5.- Agregar clase activo al menu dinamicamente
   
//Menu
var pathname = window.location.pathname;
$('#nav li a[href="' + pathname + '"]').addClass('active');
// /Menu

6.- Obtener el posición del cursor en un textarea, cajas de texto, etc.
   
//Position cursor
(function($, undefined) {
    $.fn.getCursorPosition = function() {
        var el = $(this).get(0);
        var pos = 0;
        if ('selectionStart' in el) {
            pos = el.selectionStart;
        } else if ('selection' in document) {
            el.focus();
            var Sel = document.selection.createRange();
            var SelLength = document.selection.createRange().text.length;
            Sel.moveStart('character', -el.value.length);
            pos = Sel.text.length - SelLength;
        }
        return pos;
    };
})(jQuery);
// /Position cursor

//Modo de uso
var position = $('textarea').getCursorPosition();
console.log('Posicion del cursor: '+ position);

7.- Obtenet el valor, el dódigo de la tecla pulsada
   
$("input").bind('keypress', function(e) {
    alert('Tecla especial: '+e.keyCode+' letra: '+ e.which)
    alert('Tecla especial: '+event.keyCode+' letra: '+ event.which)
});
console.info('keyCode: '+ event.keyCode);//codigo de tecla pulsada
console.info('CharCode: '+ String.fromCharCode(event.which));//obtener valor de tecla pulsada
console.info('CharCode: '+ event.which);//obtener valor de tecla pulsada

8.- Tamaño automáticamente a un textarea
   
$('textarea').css('height', this.scrollHeight) ;

9.- Reemplazar caracter de una frase
 
var text=”esta es una frase y se usara para probar reemplazar”;

//Esto reemplaza todos los q tengan espacio y la letra a en la frase
text.replace(/ /g, “mj”);  //reemplaza los espacion por las letras mj
text.replace(/a/g, “6”'); //reemplaza todo los q tengan la letra a por la 6

//Esto reemplaza al primero que encuentra la letra a en la frase
text.replace(‘a’, ''6”); //reemplaza todo los q tengan la letra a por la 6

10.- convertir cadena a mayúsculas o a minúsculas
Para convertir una cadena a mayúsculas:
 
cadena = 'Texto De Prueba';
cadena = cadena.toUpperCase();
//Devolvería "TEXTO DE PRUEBA"

Y para convertir una cadena a minúsculas:
 
cadena = 'Texto De Prueba';
cadena = cadena.toLowerCase();
//Devolvería "texto de prueba"

11.- Encontrar palabra ó caracter en una cadena
 
//La función indexOf. Devuelve el valor -1 sino lo que busca no se encuentra, y devuelve un entero positivo si la encuentra
var cadena = "Hola mundo, bienvenido al universo.";
if (cadena.indexOf('m') != -1) {
    alert("la letra m encontrada");
}

12.- Encontrar posición de una palabra ó caracter en una cadena
 
//Localiza en qué parte de la cadena se produce un valor specificado
var cadena="Hola mundo, bienvenido al universo.";
var posicion=cadena.indexOf("bienvenido");
alert(posicion);

Resetear form con jQuery

A veces queremos borrar todos los valores de los input al realizar cierta operacion cuando trabajamos con AJAX, para eso podemos usar la siguiente función para borrar todos los contenidos.
        
  $('form').each(function(){
     this.reset();
  });      

domingo, 21 de abril de 2013

Cargar script dinámicamente

Cargar scripts dinámicamente en la cabecera de HTML


<script type='text/javascript'>
//<![CDATA[
include('function.js')
function include(archivo) {
    var nuevo = document.createElement('script');
    nuevo.setAttribute('type', 'text/javascript');
    nuevo.setAttribute('src', archivo);
    document.getElementsByTagName('head')[0].appendChild(nuevo);
}
//]]>
</script>

AJAX con jQuery y Bootstrap

Hola a todos, en esta oportunidad voy a aportar con un tutorial sobre AJAX con jQuery y Bootstrap (se usará en el menu, boton, mensajes).

Se realizará con los mensajes de error personalizados, y otras cosas más.

Pasos:

1.- Nos creamos las carpetas css, lib, img
2.- Descargamos la libreria jQuery y el Bootstrap y lo ponemos en la carpeta lib
3.- Descargamos una imagen para el loading (para mostrar el mensaje cargando...) y el otro para mostrar en el contenido (en la parte inferior estan las imagenes)
4.- Creamos un archivo index.php, ajax-load.php, style.css




- En el index.php
 En el index.php va este contenido

<!DOCTYPE html>
<html lang="es">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Ejemplo de AJAX usando el framework jQuery</title>
        <link rel="shortcut icon" href="http://wimarbueno.com/favicon.ico?1904201303" type="image/vnd.microsoft.icon" />
        <meta name="description" content="Desarrollo de AJAX usando el Framework jQuery y Bootstrap, PHP, CSS" />
        <meta name="keywords" content="jQuery, AJAX, JavaScript, PHP, CSS, Bootstrap" />        
        <link rel="stylesheet" href="http://tutoriales.wimarbueno.com/framework/jquery/ajax/lib/bootstrap/css/bootstrap.min.css" />
        <link rel="stylesheet" href="http://tutoriales.wimarbueno.com/framework/jquery/ajax/css/style.css?1904201303" />                            
    </head>
    <body>
        <div id="page-wrapper"><!--Page wrapper-->
            <div id="page"><!--Page-->

                <div id="header"><!--Header-->
                    <header><!--Header-->
                        <div class="section clearfix"><!--Section-->
                            <h1>Ejemplo de AJAX con PHP, CSS, usando el framework jQuery y Bootstrap</h1>                        
                            <div class="navbar">
                                <div class="navbar-inner">
                                    <a class="brand" href="#">jQuery AJAX</a>
                                    <ul class="nav nav-pills">
                                        <li class="active"><a href="http://tutoriales.wimarbueno.com/framework/jquery/ajax/">Inicio</a></li>
                                        <li><a href="http://wimarbueno.com" title="WiMarBueno.com" target="_blank">Web</a></li>
                                        <li><a target="_blank" rel="nofollow" title="WiMarBueno blogspot" href="http://wimarbueno.blogspot.com">Blog</a></li>                                        
                                        <li class="dropdown">
                                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Mis redes sociales<b class="caret"></b></a>
                                            <ul class="dropdown-menu">                                                
                                                <li><a target="_blank" rel="nofollow" title="WiMarBueno Google Plus" href="https://plus.google.com/100732630291224994703">Google</a></li>
                                                <li><a target="_blank" rel="nofollow" title="WiMarBuenoPeru Facebook " href="https://www.facebook.com/WiMarBuenoPeru">Facebook</a></li>
                                                <li><a target="_blank" rel="nofollow" title="WiMarBueno LinkedIn" href="http://pe.linkedin.com/in/wimarbueno">LinkedIn</a></li>
                                                <li><a target="_blank" rel="nofollow" title="WiMarBueno Twitter" href="http://twitter.com/wimarbueno">Twitter</a></li>
                                            </ul>
                                        </li>
                                    </ul>                                   
                                </div>
                            </div>
                        </div><!-- /Section-->
                    </header><!-- /Header-->
                </div><!--Header-->

                <div id="main-wrapper"><!--Main wrapper-->
                    <div id="main" class="clearfix"><!--Main-->

                        <div id="sidebar-first" class="column sidebar"><!--Sidebar first-->
                            <div class="section"><!--Section-->
                                <div class="block">
                                    <p>
                                        Este es un ejemplo de ajax usando las librer&iacute;as:
                                    </p>                                    
                                    <ol>
                                        <li>Framework jQuery (para AJAX)</li>
                                        <li>Framework Bootstrap (para efectos de menu, el CSS)</li>
                                    </ol>
                                </div>
                            </div><!-- /Section-->                            
                        </div><!-- /Sidebar first-->

                        <div id="content" class="column"><!--Content-->
                            <div class="section"><!--Section-->
                                <div class="block">
                                    <input type="button" name="mostrar" id="mostrar" value="Mostrar" class="btn btn-primary"/>
                                </div>                                    
                                <div class="block">                                    
                                    <div class="msg"></div>                                        
                                    <div id="ajax-cont"></div>
                                </div>
                            </div><!-- /Section-->
                        </div><!-- /Content-->                        
                    </div><!-- /Main-->
                </div><!-- /Main wrapper-->

                <div id="footer-wrapper"><!--Footer wrapper-->
                    <div class="section clearfix"><!--Section-->
                        <p>Desarrollado por <a href="http://wimarbueno.com/" target="_blank" title="WiMarBueno.com">WiMarBueno.com</a> ;) 2013</p>
                    </div><!-- /Section-->
                </div><!--Footer wrapper-->

            </div><!-- /Page-->
        </div><!-- /Page wrapper-->

        <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
        <script src="http://tutoriales.wimarbueno.com/framework/jquery/ajax/lib/bootstrap/js/bootstrap.min.js"></script>
        <script type="text/javascript">
            BASE_URL = 'http://tutoriales.wimarbueno.com/framework/jquery/ajax/';
            WMB_CID = '?1904201303';
            jQuery(document).ready(function($) {
                $("#mostrar").click(function() {//inicio click                
                    $.ajax({
                        url: BASE_URL + 'ajax-load.php?' + WMB_CID,
                        type: 'get',
                        cache: false,
                        dataType: 'html',
                        beforeSend: function() {
                            $('#ajax-cont').html("<div class='loading'></div>")
                        },
                        success: function(response) {
                            $('#ajax-cont').html('')
                            $('#ajax-cont').fadeOut("slow").html(response).fadeIn("slow");
                        },
                        error: function(jqXHR, exception) {
                            if (jqXHR.status === 0) {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Not connect. Verify Network.</div>')
                            } else if (jqXHR.status == 400) {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Server understood the request but request content was invalid. [400].</div>')
                            } else if (jqXHR.status == 401) {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Unauthorised access. [401].</div>')
                            } else if (jqXHR.status == 403) {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Forbidden resouce can"t be accessed. [403].</div>')
                            } else if (jqXHR.status == 404) {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Requested page not found. [404].' + jqXHR.status + '</div>')
                            } else if (jqXHR.status == 500) {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Internal Server Error. [500].</div>')
                            } else if (jqXHR.status == 503) {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Service Unavailable. [503].</div>')
                            } else if (exception === 'parsererror') {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Requested JSON parse failed.</div>')
                            } else if (exception === 'timeout') {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Time out error.</div>')
                            } else if (exception === 'abort') {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Ajax request aborted.</div>')
                            } else {
                                $('#ajax-cont').html('<div class="alert alert-error"><button data-dismiss="alert" class="close" type="button">×</button><strong>Error!</strong> Uncaught Error. ' + jqXHR.responseText + '</div>')
                            }
                        }
                    }); //fin ajax 
                })//fin click
            })
        </script>                
    </body>
</html>


- En el ajax-load.php
 En el ajax-load.php va este contenido

<img src="img/wimarbueno.png" alt="WiMarBueno" /> 



- En el style.css
 En el style.css va este conteido y debe estar en la carpeta css

/*----------------------------- Tools -------------------------------------*/
.clearfix:after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
}
.loading{background: url("../img/loading.gif"); display: block;width: 300px;height: 300px;position: fixed;left: 50%;top: 50%;margin-left: -150px;margin-top: -150px;z-index: 99;}

/*----------------------------- Layout -------------------------------------*/
#page-wrapper,
#page,
#header,
#main-wrapper,
#footer-wrapper{display: block;width: 100%;height: 100%;}

#header .section,
#main-wrapper #main,
#footer-wrapper .section{display: block;width: 960px;position: relative;margin: 0 auto;}

#sidebar-first,
#sidebar-second,
#content{display: inline;float: left;position: relative;}

#sidebar-first,
#sidebar-second {
    width: 24%;
}
#content{width: 76%;}

#content .section, 
.sidebar .section {
    padding: 10px;box-shadow: 0 0 3px #BBD8E9 inset;
}
#content .section{margin-left: 5px;}

#content .section .block, 
.sidebar .section .block{
    margin-bottom: 10px;
}

/*------------*/
#footer-wrapper{padding-top: 20px;}

/*Screen*/
@media only screen and (min-width: 10px) and (max-width: 960px){
    #header .section,
    #main-wrapper #main,
    #footer-wrapper .section{width: 95%;}
}
@media only screen and (min-width: 10px) and (max-width: 600px){
    #sidebar-first,
    #sidebar-second,
    #content{width: 100%;clear: both;}
    #content .section{margin-left: 0;margin-top: 5px;}
} 
-----------------------------------------------------------------------
Si deseas verlo en YouTube.






 Link del ejemplo aquí
Descarga: en proceso
 

sábado, 20 de abril de 2013

Códigos de estado HTTP

La siguiente es una lista de códigos de respuesta del HTTP y frases estándar asociadas, destinadas a dar una descripción corta del estatus.

El primer dígito del código de respuesta especifica una de las cinco clases de respuesta.

1xx: Respuestas informativas.

 Petición recibida, continuando proceso.

100 Continúa
101 Conmutando protocolos
102 Procesando (WebDAV - RFC 2518)

2xx: Peticiones correctas.

Esta clase de código de estado indica que la petición fue recibida correctamente, entendida y aceptada.

200 OK
201 Creado
202 Aceptada
203 Información no autoritativa (desde HTTP/1.1)
204 Sin contenido
205 Recargar contenido
206 Contenido parcial
207 Estado múltiple (Multi-Status, WebDAV)


3xx: Redirecciones.

El cliente tiene que tomar una acción adicional para completar la petición.

300 Múltiples opciones
301 Movido permanentemente
302 Movido temporalmente
303 Vea otra (desde HTTP/1.1)
304 No modificado
305 Utilice un proxy (desde HTTP/1.1)
306 Cambie de proxy
307 Redirección temporal (desde HTTP/1.1)

4xx Errores del cliente.

La solicitud contiene sintaxis incorrecta o no puede procesarse.

400 Solicitud incorrecta
401 No autorizado
402 Pago requerido
403 Prohibido
404 No encontrado
405 Método no permitido
406 No aceptable
407 Autenticación Proxy requerida
408 Tiempo de espera agotado
409 Conflicto
410 Ya no disponible
411 Requiere longitud
412 Falló precondición
413 Solicitud demasiado larga
414 URI demasiado larga
415 Tipo de medio no soportado
416 Rango solicitado no disponible
417 Falló expectativa
421 Hay muchas conexiones desde esta dirección de internet
422 Entidad no procesable (WebDAV - RFC 4918)
423 Bloqueado (WebDAV - RFC 4918)
424 Falló dependencia (WebDAV) (RFC 4918)
425 Colección sin ordenar
426 Actualización requerida (RFC 2817)
449 Reintente con

5xx Errores de servidor.

 El servidor falló al completar una solicitud aparentemente válida.

500 Error interno
501 No implementado
502 Pasarela incorrecta
503 Servicio no disponible
504 Tiempo de espera de la pasarela agotado
505 Versión de HTTP no soportada
506 Variante también negocia (RFC 2295)
507 Almacenamiento insuficiente (WebDAV - RFC 4918)
509 Límite de ancho de banda excedido
510 No extendido (RFC 2774)

viernes, 19 de abril de 2013

Espacio IP de salida de Outlook

Outlook envía correo electrónico desde las siguientes direcciones IP:
  • 65.54.190.0/26
  • 65.54.190.64/26
  • 65.54.190.128/26
  • 65.54.190.192/26
  • 65.55.116.0/26
  • 65.55.111.64/26
  • 65.55.116.64/26
  • 65.55.111.128/26
  • 65.55.34.0/26
  • 65.55.34.64/26
  • 65.55.34.128/26
  • 65.55.34.192/26
  • 65.55.90.0/26
  • 65.55.90.64/26
  • 65.55.90.128/26
  • 65.55.90.192/26
  • 65.54.51.64/26
  • 65.54.61.64/26
  • 207.46.66.0/28
  • 157.55.0.192/26
  • 157.55.1.128/26
  • 157.55.2.0/26
  • 157.55.2.64/26

Problemas para enviar correo electrónico a usuarios de Outlook.



Si eres usuario de Outlook y necesitas soporte para tu cuenta, visita la página  páginade soporte para usuarios finales.
Si tienes problemas para entregar correo electrónico a Outlook, primero asegúrate de seguir todos los requisitos que aparecen en la  página Directivas y directrices página.

Problemas comunes

¿Estás administrando la reputación de envío de tu IP y tu dominio?

La tecnología SmartScreen® de Microsoft está diseñada para proporcionar innovaciones de filtrado contra correo no deseado para Outlook así como para otros productos de Microsoft, como Exchange Server, Microsoft Office Outlook y Windows Live Mail. También se aprovecha el marco Id. de remitente (está disponible solamente en inglés) un protocolo de tecnología de autenticación de correo electrónico que ayuda a solucionar el problema de la falsificación y la suplantación de identidad (phishing) al comprobar que el dominio que envía el correo está autorizado a ello. Los filtros de correo electrónico SmartScreen® están influenciados por una serie de factores relacionados con la IP remitente, el dominio, la autenticación, la precisión de las listas, las tasas de quejas, el contenido, etc. Entre estos factores, uno de los principales para rebajar la reputación y la capacidad de entrega de un remitente es su tasa de quejas por correo electrónico no deseado.

¿Estás enviando correo electrónico desde nuevas IP?

Aquellas IP que no se han usado anteriormente para enviar correo electrónico no suelen tener una reputación en nuestros sistemas. Por tanto, sus mensajes tienen más posibilidades de experimentar problemas de entrega. Una vez que la IP se ha creado una reputación como no emisora de correo no deseado, Outlook permitirá una mejor experiencia de entrega.
Las nuevas IP agregadas a dominios autenticados con registros de Id. de remitente existentes suelen tener la ventaja adicional de heredar parte de la reputación de envío del dominio. Si éste tiene una buena reputación de envío, las nuevas IP pueden experimentar un tiempo de preparación más rápido. Una nueva IP puede estar completamente preparada en un par de semanas o menos según el volumen, la precisión de las listas y siempre que sus tasas de quejas por correo electrónico no deseado se mantengan al mínimo. Para actualizar o crear tu registro de Id. de remitente, haz clic aquí (está disponible solamente en inglés).
Nota: además de agregar tus nuevas IP a registros de id. de remitente existentes, no olvides actualizar tu cuenta del programa de notificación de correo no deseado (JMRP) con las nuevas IP. Para actualizar o configurar una cuenta JMRP, haz clic en aquí.

¿Usas software antivirus?

Algunos de los problemas de entrega se deben a configuraciones de software basadas en el remitente. Si usas software antivirus en tu firewall o servidor SMTP, busca la configuración de "protección automática de correo electrónico de Internet" o "protección de correo electrónico de Internet". Si esta configuración está habilitada, deshabilítala y vuelve a intentar enviar un mensaje de prueba a nuestros servidores.
Si actualmente usas Symantec AntiVirus Corporate Edition 9.x o 10.x en tu servidor, consulta este artículo (está disponible solamente en inglés) de soporte técnico de Symantec.

Comprueba que tu DNS esté correctamente configurado

Intenta conectar con mail.hotmail.com a través del puerto 25. Si no puedes, intenta establecer una conexión telnet a través del puerto 25 directamente a nuestros servidores de correo electrónico (MTA). Encontrarás la lista actualizada de MTA si realizas una consulta "nslookup -q=mx hotmail.com" desde un símbolo del sistema (esto debería funcionar en varios sistemas operativos). En este momento, las direcciones de estos servidores son mx1.hotmail.com, mx2.hotmail.com, mx3.hotmail.com y mx4.hotmail.com. Si eso no da resultado, intenta conectar directamente con las IP. Si puedes conectar directamente con la IP y no con mail.hotmail.com, es probable que exista un problema con tu servidor DNS. Puedes confirmarlo si visitas www.dnsreport.com para identificar y solucionar problemas de DNS o de entrega de correo electrónico con tu dominio.
A veces algunas de las IP de nuestro registro MX pueden estar fuera de servicio. Si estás conectando con una de estas IP, es posible que se agote el tiempo de espera de tu conexión. Asegúrate de probar todas nuestras IP publicadas. También puedes configurar tu servidor de correo electrónico de salida de modo que realice una búsqueda de DNS por turnos de Outlook.com

¿Te anuncias como IP no enrutable?

Es posible que no aceptemos correo electrónico de remitentes que no superen una búsqueda de DNS inversa. En algunos casos, los remitentes legítimos se anuncian de forma incorrecta como IP de Internet no enrutable al intentar abrir una conexión a Outlook. Las direcciones IP reservadas para redes privadas (no enrutables) son 192.168.0.0/16, 10.0.0.0/8 y 172.16.0.0/11 (o 192.168.0.0 - 192.168.255.255, 10.0.0.0 - 10.255.255.255, 172.16.0.0 - 172.31.255.255).

Servicios para remitentes, herramientas y envío de problemas

Hemos desarrollado algunas herramientas y servicios que te proporcionarán más información acerca de la valoración de tu correo electrónico por parte de los usuarios. Estos servicios están hechos a la medida de remitentes e ISP. Para obtener más información acerca de los servicios para remitentes e ISP, ve a aquí.
Si tu correo electrónico cumple nuestras directivasy directrices y sigues experimentando problemas de entrega de correo electrónico de los que no se hable en las P+F, haz clic aquí para ponerte en contacto con el servicio de soporte.
Nota: los problemas de entrega remitidos mediante este formulario deben estar relacionados únicamente con el sistema Outlook, lo que incluye cualquier dirección @msn.com, @Outlook.com, @hotmail.com o @live.com. Haremos todo lo posible por ayudarte a solucionar tu problema. No obstante, el envío de esta información no garantiza la entrega de cualquier mensaje que envíes a los usuarios de Outlook.

Preguntas más frecuentes

¿Por qué hay ocasiones en que el correo electrónico que envío a usuarios de Outlook tiene un aspecto distinto cuando lo reciben?

Evita usar lenguajes de scripting, ya que estos se pueden quitar de tu mensaje. Ahora muchos mensajes de correo electrónico contienen código HTML similar al de las páginas web, que suele ayudar con el formato y el diseño. Outlook ahora analiza y procesa el contenido HTML para quitar el código HTML que pueda no ser seguro para tu equipo. Esta modificación forma parte de la iniciativa global Trustworthy Computing de Microsoft y su objetivo es reducir el riesgo de que algún contenido HTML malintencionado llegue a nuestros usuarios.

¿Cómo puedo evitar que mis mensajes se marquen como procedentes de un “remitente desconocido” en la interfaz de Outlook?

Una forma de garantizar que tus mensajes no se marquen como procedentes de un “remitente desconocido” es unirse al programa Correo electrónico Sender Score Certified de Return Path, un servicio de acreditación y reputación de otros proveedores que proporciona a Outlook una lista de remitentes responsables. De forma alternativa, si un usuario de Outlook agrega tu dominio o dirección de correo electrónico a sus “contactos” o su “lista de remitentes seguros”, ya no verá esta notificación. Además, los usuarios que se encuentran en la lista Sender Score Certified de Return Path o en la lista de “remitentes seguros” de un usuario, suelen tener habilitados los vínculos y las imágenes de sus mensajes de forma predeterminada.

¿Debo publicar un registro de SPF, un registro de Id. de remitente o ambos?

En la mayoría de los casos, el uso del registro de SPF satisfará la comprobación de SPF y de identificador de remitente en los sistemas Outlook. Se anima a las organizaciones que deseen publicar un registro de identificador de remitente a hacerlo. Este segundo registro se usará para las validaciones de identificador de remitente, solo del dominio PRA, y tendrá preferencia sobre el registro de SPF clásico.

¿Outlook cuenta con una “lista de permitidos” en la que pueda incluirme?

No. Una “lista de permitidos” (es decir, una “lista blanca”) básicamente es un “pase libre” que permite que los mensajes de ciertos remitentes pasen los filtros de correo no deseado y otras precauciones. Outlook evalúa todo el correo electrónico entrante para detectar contenido malintencionado. Puedes obtener más información acerca de nuestros procesos de filtrado aquí. No obstante, estamos asociados con Return Path, Inc., que ayuda a garantizar la legitimidad de ciertos remitentes mediante su programa Sender Score Certified. Este programa permite a Outlook ofrecer más garantías acerca del correo de los remitentes certificados colocados en buena posición. Puedes obtener más información acerca del programa Sender Score Certified aquí (está disponible solamente en inglés).

¿Cómo evito que mis mensajes se marquen como potencialmente peligrosos?

Para evitar que tus mensajes se identifiquen como potencialmente fraudulentos:
  • Usa siempre direcciones URL válidas y con buena reputación. Asegúrate de que está claro a dónde se llevará al destinatario y si el destino es un sitio web válido.
  • Usa el formato URL estándar. Evita el uso de direcciones IP en la dirección URL.
  • Siempre que sea posible, publica tus registros de marco de directivas de remitente (SPF).
  • No establezcas vínculos a sitios de suplantación de identidad (phishing) conocidos.

¿Por qué he recibido un informe de no entrega (NDR) SMTP “550 comando rechazado debido a un error de validación de identificador de remitente...” al intentar enviar correo a usuarios de Outlook?

Outlook no permitirá la entrega de correo electrónico enviado desde un dominio en que el registro de identificador de remitente haya sido configurado por el propietario del dominio en NO permitir que NINGUNA IP envíe correo desde ese dominio. El identificador de remitente permite que un propietario de dominio proteja los dominios no destinados al envío de correo electrónico a fin de proteger su dominio frente a una falsificación. Esto puede hacerse mediante la publicación de un registro TXT simple en DNS como el siguiente ejemplo (nota: la organización sustituiría ejemplo.com por su propio nombre de dominio o subdominio):
ejemplo.com IN TXT “v=spf1 -all”
Si el dominio se reasigna para enviar correo, el administrador del registro DNS debe actualizar el registro de Id. de remitente para incluir las direcciones IP autorizadas a enviar correo desde ese dominio. Ten en cuenta que las actualizaciones de tu registro de Id. de remitente pueden tardar un máximo de 48 horas en propagarse por Internet, así que es buena idea esperar 48 horas después de realizar cualquier cambio en tu registro antes de iniciar cualquier actividad nueva de correo electrónico. Además, Microsoft te recomienda encarecidamente que realices pruebas de correo electrónico antes de enviar comunicaciones en vivo a tus usuarios o clientes.

Códigos de error SMTP

Código de error SMTP

Explicación

421 RP-001
La IP del servidor de correo que está conectando con el servidor de Outlook ha superado la tasa límite permitida. El motivo de esta limitación está relacionado con la reputación de la IP o el dominio. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de acceso a correo electrónico o Internet para obtener ayuda.
421 RP-002
La IP del servidor de correo que está conectando con el servidor de Outlook ha superado la tasa límite permitida en esta conexión. El motivo de la limitación está relacionado con la reputación de la IP o el dominio. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de acceso a correo electrónico o Internet para obtener ayuda.
421 RP-003
La IP del servidor de correo que está conectando con el servidor de Outlook ha superado el límite de conexiones permitido. El motivo de esta limitación está relacionado con la reputación de la IP o el dominio. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de acceso a correo electrónico o Internet para obtener ayuda.
550 SC-001
Correo rechazado por Outlook en virtud de sus directivas. Los motivos del rechazo pueden estar relacionados con un contenido con características similares al correo no deseado o con la reputación de la IP o el dominio. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de acceso a correo o Internet para obtener ayuda.
550 SC-002
Correo rechazado por Outlook en virtud de sus directivas. La IP del servidor de correo que está conectando con Outlook ha mostrado un comportamiento de minería de espacio de nombres. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de acceso a correo o Internet para obtener ayuda.
550 SC-003
Correo rechazado por Outlook en virtud de sus directivas. Tu dirección IP parece ser un proxy o retransmisión abierto. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de acceso a correo o Internet para obtener ayuda.
550 SC-004
Correo rechazado por Outlook en virtud de sus directivas. Se ha bloqueado tu dirección IP porque se han recibido quejas relacionadas con el correo procedente de ella. Te recomendamos inscribirte en nuestro programa de notificación de correo no deseado (JMRP), un programa gratuito cuyo objetivo es ayudar a los remitentes a eliminar a los destinatarios que no desean serlo de su lista de correo. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de servicio de correo o Internet para obtener ayuda.
550 DY-001
Correo rechazado por Outlook en virtud de sus directivas. Normalmente no aceptamos correo electrónico procedente de IP dinámicas, ya que no suelen usarse para entregar correo SMTP sin autenticar a un servidor de correo de Internet. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de acceso a correo o Internet para obtener ayuda. La página http://www.spamhaus.org (en inglés) mantiene listas de direcciones IP dinámicas y residenciales.
550 DY-002
Correo rechazado por Outlook en virtud de sus directivas. La causa más probable es un servidor o equipo personal en peligro o infectado por un virus. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de acceso a correo o Internet para obtener ayuda.
550 OU-001
Correo rechazado por Outlook en virtud de sus directivas. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de acceso a correo o Internet para obtener ayuda. Para obtener más información acerca de este bloqueo y para solicitar su eliminación, ve a: http://www.spamhaus.org (en inglés).
550 OU-002
Correo rechazado por Outlook en virtud de sus directivas. Los motivos del rechazo pueden estar relacionados con un contenido con características similares al correo no deseado o con la reputación de la IP o el dominio. Si no eres administrador de correo o de red, ponte en contacto con tu proveedor de acceso a correo o Internet para obtener ayuda.