This is an old revision of the document!


How to Configure Outgoing Server

coreBOS necesita una cuenta de correo de salida para poder enviar correos administrativos relativos al funcionamiento de la aplicación. Utilizando esta cuenta de correo enviará correos de aviso provenientes de los flujos de trabajo, del calendario o al finalizar una importación (por ejemplo).

Dado que es necesaria esta cuenta de correo se ha tomado la decisión de utilizarla también para enviar los correos de trabajo de los propios usuarios. Para que esto funcione y parezca que cada usuario manda los correos desde su propia cuenta se utiliza una técnica permitida por el protocolo de envíos de correo (SMTP) denominado RELAY. Esto consiste en que el programa se conecta al servidor con la cuenta que tiene configurada y le indica que va a mandar el correo en nombre de otra cuenta de correo.

Esta característica propia del sistema SMTP ha pasado por una fase de mala prensa debido a su abuso por parte de generadores de spam y virus que lo aprovechan para enviar emails no autorizados en nombre de otros usuarios. Es por ello que algunos servidores, más estrictos con los emails que pasan por ellos, no lo permiten y NO FUNCIONARAN con coreBOS o solo permitirán enviar emails como un único usuario, el que se utiliza para conectar al servidor.

Para introducir los datos de la cuenta de correo de salida hay que ir a la sección de Configuración y dentro de la misma a la sección Configuración del Servidor de Correo

Settings > Outgoing Server

Outgoing Serveres el servidor al que hemos de conectar para poder enviar correos. este campo soporte una sintaxis extendida mediante la cual podremos indicar el protocolo y el puerto, algo así:
ssl://smtp.gmail.com:467

o

tsl://msexchange:587
User Name and Passwordson el usuario y la contraseña para conectar al servidor
Email FromEste campo forzará que todos los emails que salgan del sistema parezcan que provienen de este email. Es algo bastante restrictivo ya que ningún usuario recibirá las respuestas pero sí podrán enviar si su servidor está entre los que no funcionan con RELAY (leer arriba)
Requires Authentication?no permite definir el protocolo a utilizar para la conexión

Al guardar los datos se hará una comprobación de conexión y envío de correo. Si no se consigue enviar correctamente el correo NO se guardarán los datos. Seremos devueltos a la página de configuración con un mensaje que indica que no se ha podido enviar el correo. Llegados a este punto hay un error de conexión o autentificación o de soporte de RELAY y hay que acudir a las técnicas de depuración.

Si al depurar llegamos a un mensaje de error del tipo:

SMTP -> FROM SERVER:550 5.7.1 Client does not have permissions to send as this sender
SMTP -> ERROR: DATA END command failed: 550 5.7.1 Client does not have permissions to send as this sender
SMTP Error: data not accepted.

El servidor de correo está diciendo que no tenemos permiso para enviar. Básicamente dice que el error es porque la cuenta con la que se conecta ha de ser la misma que el remitente, el servidor no soporta RELAY.

Si os pasa esto, os recomiendo pillar una cuenta en sendgrid, de verdad que funciona de maravilla y os da mucha más información de la que tenéis ahora. Tienen cuentas gratuitas con un limite de 200 correos al día y por poco dinero podéis hacer aun más. Nosotros lo utilizamos con regularidad para envíos masivos desde coreBOS y para controlar las entregas de correo administrativo. Vale más de lo que cuesta.

Debugging errors

Email

Have a read here about how coreBOS outgoing email server works and how to configure it.

Activate the debug log at level FATAL and set the Debug_Email_Sending global variable to 1. This will send the whole conversation between coreBOS and the email server to the log file so you can diagnose the problem.

In previous versions, we used to need the changes below which I leave here as a reference only. The global variable method is better.

To debug the outgoing email server the best is to activate PHPMailer debugging with the changes below and look in the debug log file (logs/vtigercrm.log)

diff --git a/modules/Emails/class.phpmailer.php b/modules/Emails/class.phpmailer.php
index 8427255..61bd55c 100644
--- a/modules/Emails/class.phpmailer.php
+++ b/modules/Emails/class.phpmailer.php
@@ -326,7 +326,7 @@ class PHPMailer
      * @var integer
      * @see SMTP::$do_debug
      */
-    public $SMTPDebug = 0;
+    public $SMTPDebug = 4;
 
     /**
      * How to handle debug output.
diff --git a/modules/Emails/mail.php b/modules/Emails/mail.php
index a8cac72..7674172 100755
--- a/modules/Emails/mail.php
+++ b/modules/Emails/mail.php
@@ -328,7 +328,14 @@ function setMailServerProperties($mail)
        $mail->Host = $server;          // specify main and backup server
        $mail->Username = $username ;   // SMTP username
        $mail->Password = $password ;   // SMTP password
-
+global $log;$log->fatal(array(
+       'SMTPOptions' => $mail->SMTPOptions,
+       'SMTPSecure' => $mail->SMTPSecure,
+       'Host' => $mail->Host = $server,
+       'Username' => $mail->Username = $username,
+       'Password' => $mail->Password = $password,
+));
+$mail->Debugoutput = function($str, $level) { global $log;$log->fatal($str);};
        return;
 }
 
2014/05/19 11:20 · joebordes

coreBOS Documentación