Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Meta en 29 Abril 2011, 12:07 pm



Título: Resolver un porblema que no encuentro
Publicado por: Meta en 29 Abril 2011, 12:07 pm
Hola:

Me falla algo que no se el que. ¿Cuál es el error?

Código
  1. private: System::Void button_enviar_Click(System::Object^  sender, System::EventArgs^  e) {
  2.  
  3. toolStripStatusLabel1->Text = " ";
  4.            button_enviar->Enabled = false;
  5.            //La cadena "servidor" es el servidor de correo que enviará tu mensaje.
  6.            String^ servidor = textBox_smtp->Text;
  7.            // Crea el mensaje estableciendo quién lo manda y quién lo recibe.
  8.            MailMessage^ mensaje = gcnew MailMessage(
  9.               textBox_emisor->Text,
  10.               textBox_receptor->Text,
  11.               textBox_asunto->Text,
  12.               richTextBox_mensajazo->Text);
  13.  
  14.            /*try
  15.             {*/
  16.                // Envía archivo adjunto.
  17.                Attachment^ archivo_adjunto = gcnew Attachment(textBox_ruta_buscar_archivo->Text);
  18.                mensaje->Attachments->Add(archivo_adjunto);
  19.            //}
  20.  
  21.            //catch (ArgumentException)
  22.            //{
  23.            //    // Sin asunto.
  24.            //}
  25.  
  26.  
  27.            //Envía el mensaje.
  28.            SmtpClient^ cliente = gcnew SmtpClient(servidor);
  29.  
  30.            cliente->UseDefaultCredentials = false;
  31.            cliente->Credentials^ = gcnew NetworkCredential(textBox_emisor->Text, textBox_contra->Text);
  32.            cliente->Port^ = Convert->ToInt32(textBox_puerto->Text);
  33.            cliente->Host = textBox_smtp->Text;
  34.            cliente->EnableSsl = true;
  35.  
  36.            //Añade credenciales si el servidor lo requiere.
  37.            //cliente.Credentials = CredentialCache.DefaultNetworkCredentials;
  38.           /* try
  39.             {*/
  40.                cliente->Send(mensaje);
  41.            //}
  42.            //catch (SmtpException)
  43.            //{
  44.            //    MessageBox::Show("No haz introducido bien la contraseña. \nNo admite ciertos archivos que puedan contener virus como .exe, etc.\nEl archivo es demasiado grande.", "Aviso:",
  45.            //        MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
  46.            //}
  47.            toolStripStatusLabel1->Text = "Enviado.";
  48.            button_enviar->Enabled = true;
  49. }
  50.  

Compilación:
1>------ Operación Generar iniciada: proyecto: email_smtp_cpp, configuración: Debug Win32 ------
1>  email_smtp_cpp.cpp
1>c:\users\hunter\documents\visual studio 2010\projects\email_smtp_cpp\email_smtp_cpp\Form1.h(341): error C2059: error de sintaxis : '='
1>c:\users\hunter\documents\visual studio 2010\projects\email_smtp_cpp\email_smtp_cpp\Form1.h(342): error C2059: error de sintaxis : '='
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========



Título: Re: Resolver un porblema que no encuentro
Publicado por: El_Java en 29 Abril 2011, 15:01 pm
Para agilizar todo esto, puedes decirnos cuales son las lineas 341  y 342? Como aqui no salen numeradas... xD


Título: Re: Resolver un porblema que no encuentro
Publicado por: Meta en 29 Abril 2011, 16:03 pm
Es en Visual C++ 2010. Te lo muestra abajo señalado en amarillo.

Código
  1. toolStripStatusLabel1->Text = " ";
  2.            button_enviar->Enabled = false;
  3.            //La cadena "servidor" es el servidor de correo que enviará tu mensaje.
  4.            String^ servidor = textBox_smtp->Text;
  5.            // Crea el mensaje estableciendo quién lo manda y quién lo recibe.
  6.            MailMessage^ mensaje = gcnew MailMessage(
  7.               textBox_emisor->Text,
  8.               textBox_receptor->Text,
  9.               textBox_asunto->Text,
  10.               richTextBox_mensajazo->Text);
  11.  
  12.            /*try
  13.             {*/
  14.                // Envía archivo adjunto.
  15.                Attachment^ archivo_adjunto = gcnew Attachment(textBox_ruta_buscar_archivo->Text);
  16.                mensaje->Attachments->Add(archivo_adjunto);
  17.            //}
  18.  
  19.            //catch (ArgumentException)
  20.            //{
  21.            //    // Sin asunto.
  22.            //}
  23.  
  24.  
  25.            //Envía el mensaje.
  26.            SmtpClient^ cliente = gcnew SmtpClient(servidor);
  27.  
  28.            cliente->UseDefaultCredentials = false;
  29.            cliente->Credentials^ = gcnew NetworkCredential(textBox_emisor->Text, textBox_contra->Text);
  30.            cliente->Port^ = Convert->ToInt32(textBox_puerto->Text);
  31.            cliente->Host = textBox_smtp->Text;
  32.            cliente->EnableSsl = true;
  33.  
  34.            //Añade credenciales si el servidor lo requiere.
  35.            //cliente.Credentials = CredentialCache.DefaultNetworkCredentials;
  36.           /* try
  37.             {*/
  38.                cliente->Send(mensaje);
  39.            //}
  40.            //catch (SmtpException)
  41.            //{
  42.            //    MessageBox::Show("No haz introducido bien la contraseña. \nNo admite ciertos archivos que puedan contener virus como .exe, etc.\nEl archivo es demasiado grande.", "Aviso:",
  43.            //        MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
  44.            //}
  45.            toolStripStatusLabel1->Text = "Enviado.";
  46.            button_enviar->Enabled = true;

;)


Título: Re: Resolver un porblema que no encuentro
Publicado por: Meta en 2 Mayo 2011, 08:12 am
Buenas:

¿Alguna ayuda de sintaxis?

error C2059: error de sintaxis : '='

Todavía no doy con el error.

Saludo.


Título: Re: Resolver un porblema que no encuentro
Publicado por: leogtz en 2 Mayo 2011, 08:16 am
Código:
cliente->Credentials^ = gcnew NetworkCredential(textBox_emisor->Text, textBox_contra->Text);

Si estás tratando de usar un operador XOR, debe ser así:

Código:
cliente->Credentials ^= gcnew NetworkCredential(textBox_emisor->Text, textBox_contra->Text);

Pegado al "=", ¿o no lo pusiste por error?


Título: Re: Resolver un porblema que no encuentro
Publicado por: Meta en 2 Mayo 2011, 14:12 pm
Me funciona, muchísimas gracias.