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

Bertrand Lorentz bertrand.lorentz at gmail.com
Mon Jan 20 15:30:35 UTC 2014


Hello,

Unless I'm mistaken, the MailMessage and SmtpClient classes are part
of the System.Net.Mail namespace, which is not part of gtk-sharp, but
part of the Base Class Library implementation provided by Mono itself.

So I think this is not the right mailing list for your question. I'd
suggest to use one of the Mono support channels:
http://www.mono-project.com/Support

Cheers,

--
Bertrand

2014/1/17 Adrian Eric <adrianeric40 at gmail.com>:
> 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();
>
> }
>
> _______________________________________________
> Gtk-sharp-list maillist  -  Gtk-sharp-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
>


More information about the Gtk-sharp-list mailing list