[Gtk-sharp-list] MailMessage class does not work in Linux, but if Windows

Adrian Eric adrianeric40 at gmail.com
Fri Jan 17 21:05:23 UTC 2014


Can someone please tell me why the code below with doing well in Windows but
not in Linux?

In linux generate the error "Message could not be sent."!!!. but not give
me more details.

First I thought the problem was the attachment, tried to remove these lines
of code but the problem persists.

from already thank you very much.

Saludos y muchas gracias!!.


public class enviar_email
    {
        Window ventana;

        public enviar_email(string[] para, string[] cc, string[] cco,
                            string asunto, string mensaje, string
caminoAdjunto,
                            string tipoDeDato, out bool enviadoOK)
        {
            //determino los datos del usuario
            DataTableReader reader = new
DataTableReader(MainWindow.tablaUsuarioActual);
            reader.Read();
            uint IdUsuario =  uint.Parse(reader["IdUsuario"].ToString());
            string email_rtte = reader["email"].ToString();
            string usuario_casilla = reader["usuarioEmail"].ToString();
            string contraseña_casilla =
reader["contraseniaEmail"].ToString();
            string servidorSMTP = reader["servidor_salida"].ToString();
            string servidorAutentic =
reader["servidor_autenticacion"].ToString();

            //verifico que existan los datos de usuario p/poder enviar
            if(email_rtte.Length == 0 | usuario_casilla.Length == 0 |
contraseña_casilla.Length == 0
               | servidorSMTP.Length == 0 | servidorAutentic.Length == 0)
            {
                muestraDialogo msjErrorEmail = new muestraDialogo("Falta
configuración", "Los datos de configuración necesarios para enviar" +
                                                                  "\ncorreo
electrónico no estan completos. Diríjase a 'Configuración-Usuarios'" +
                                                                  "\npara
completar los datos faltantes.", MessageType.Warning);
                enviadoOK = false;
                return;

            }

            MailMessage mailMensaje = new MailMessage();
            mailMensaje.From = new MailAddress(email_rtte);

            if(para[0]!= "vacio")
            {
                foreach(string Para in para )
                {
                    MailAddress mailAddressPara = new MailAddress(Para);
                    mailMensaje.To.Add(mailAddressPara);
                }

            }

            if(cc.Length != 0)
            {
                foreach(string conCopia in cc )
                {
                    if(conCopia == "")
                        break;
                    MailAddress mailAddressCC = new MailAddress(conCopia);
                    mailMensaje.CC.Add(mailAddressCC);
                }

            }

            if(cco.Length != 0)
            {
                foreach(string conCopiaOculta in cco )
                {
                    if(conCopiaOculta == "")
                        break;
                    MailAddress mailAddressCCO = new
MailAddress(conCopiaOculta);
                    mailMensaje.Bcc.Add(mailAddressCCO);
                }

            }


            //aislo el nombre del adjunto del camino pasado a la clase
            char caracterSeparador =
(MainWindow.separadorDir.ToCharArray())[0];
            int indiceFinal = caminoAdjunto.LastIndexOf(caracterSeparador);
            string nombreArchivo = caminoAdjunto.Substring(indiceFinal+1,
caminoAdjunto.Length-(indiceFinal+1));

            mailMensaje.Subject = asunto;
            Attachment adjunto = new Attachment(caminoAdjunto);
            mailMensaje.Attachments.Add(adjunto);

            //con la linea siguiente configuro la opcion de la confirmacion
de lectura
            //y a que direccion debera enviar dicha confirmacion
            mailMensaje.Headers.Add("Disposition-Notification-To",
usuario_casilla);
            SmtpClient cliente = new SmtpClient(servidorAutentic, 25);
            cliente.Credentials = new
System.Net.NetworkCredential(usuario_casilla, contraseña_casilla);


            try
            {
                cliente.Send(mailMensaje);

            }
            catch (SmtpException ex)
            {
                muestraDialogo dialogoError = new muestraDialogo("Error en
envío de e-mail",
                                                                 "Hubo un
error en el intento de envío " +
                                                                 "del
correo electronico." +
                                                                 "\nPor
favor pongase en contacto con el administrador" +
                                                                 "\ndel
sistema y comentele del error recibido." +
                                                                 "\nMensaje
del error: " + ex.Message,

MessageType.Error);
                enviadoOK = false;
                mailMensaje.Dispose();
                bool eliminado;
                EliminarArchivo eliminarFile = new
EliminarArchivo(caminoAdjunto, out eliminado);

                return;
            }

            MessageDialog dialogo = new
MessageDialog(ventana,DialogFlags.Modal, MessageType.Info,
                                                          ButtonsType.Ok,
"El correo se envió satisfactoriamente.");
                dialogo.UseMarkup = true;
                dialogo.Title = "<b>Informe de envío</b>";
                dialogo.WindowPosition = WindowPosition.Center;
                dialogo.Run();
                dialogo.Hide();
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/gtk-sharp-list/attachments/20140117/647774af/attachment.html>


More information about the Gtk-sharp-list mailing list