Test Foro de elhacker.net SMF 2.1

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 (c++) [Seleccionar]

private: System::Void button_enviar_Click(System::Object^  sender, System::EventArgs^  e) {

toolStripStatusLabel1->Text = " ";
            button_enviar->Enabled = false;
            //La cadena "servidor" es el servidor de correo que enviará tu mensaje.
            String^ servidor = textBox_smtp->Text;
            // Crea el mensaje estableciendo quién lo manda y quién lo recibe.
            MailMessage^ mensaje = gcnew MailMessage(
               textBox_emisor->Text,
               textBox_receptor->Text,
               textBox_asunto->Text,
               richTextBox_mensajazo->Text);

            /*try
            {*/
                // Envía archivo adjunto.
                Attachment^ archivo_adjunto = gcnew Attachment(textBox_ruta_buscar_archivo->Text);
                mensaje->Attachments->Add(archivo_adjunto);
            //}

            //catch (ArgumentException)
            //{
            //    // Sin asunto.
            //}


            //Envía el mensaje.
            SmtpClient^ cliente = gcnew SmtpClient(servidor);

            cliente->UseDefaultCredentials = false;
            cliente->Credentials^ = gcnew NetworkCredential(textBox_emisor->Text, textBox_contra->Text);
            cliente->Port^ = Convert->ToInt32(textBox_puerto->Text);
            cliente->Host = textBox_smtp->Text;
            cliente->EnableSsl = true;

            //Añade credenciales si el servidor lo requiere.
            //cliente.Credentials = CredentialCache.DefaultNetworkCredentials;
           /* try
            {*/
                cliente->Send(mensaje);
            //}
            //catch (SmtpException)
            //{
            //    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:",
            //        MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
            //}
            toolStripStatusLabel1->Text = "Enviado.";
            button_enviar->Enabled = true;
}


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 (cpp,29,30) [Seleccionar]
toolStripStatusLabel1->Text = " ";
            button_enviar->Enabled = false;
            //La cadena "servidor" es el servidor de correo que enviará tu mensaje.
            String^ servidor = textBox_smtp->Text;
            // Crea el mensaje estableciendo quién lo manda y quién lo recibe.
            MailMessage^ mensaje = gcnew MailMessage(
               textBox_emisor->Text,
               textBox_receptor->Text,
               textBox_asunto->Text,
               richTextBox_mensajazo->Text);

            /*try
            {*/
                // Envía archivo adjunto.
                Attachment^ archivo_adjunto = gcnew Attachment(textBox_ruta_buscar_archivo->Text);
                mensaje->Attachments->Add(archivo_adjunto);
            //}

            //catch (ArgumentException)
            //{
            //    // Sin asunto.
            //}


            //Envía el mensaje.
            SmtpClient^ cliente = gcnew SmtpClient(servidor);

            cliente->UseDefaultCredentials = false;
            cliente->Credentials^ = gcnew NetworkCredential(textBox_emisor->Text, textBox_contra->Text);
            cliente->Port^ = Convert->ToInt32(textBox_puerto->Text);
            cliente->Host = textBox_smtp->Text;
            cliente->EnableSsl = true;

            //Añade credenciales si el servidor lo requiere.
            //cliente.Credentials = CredentialCache.DefaultNetworkCredentials;
           /* try
            {*/
                cliente->Send(mensaje);
            //}
            //catch (SmtpException)
            //{
            //    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:",
            //        MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
            //}
            toolStripStatusLabel1->Text = "Enviado.";
            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
cliente->Credentials^ = gcnew NetworkCredential(textBox_emisor->Text, textBox_contra->Text);

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

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.