Consulta sobre envío de e-mails usando c sharp

24/09/2011 - 07:47 por Dillon | Informe spam
Hola Amigos, tengo la siguiente inquietud, estoy probando un programa
para mandar e-mail usando codigo c sharp:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net.Mail;
//using AppEx = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
// using Microsoft.Office.Interop.Excel;
namespace send
{
public partial class Form1 : Form
{
public string[] tabla1 = new string[108]; // 108 elementos
string

public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{

}
private void send_Click(object sender, EventArgs e)
{
int index;
// Establecer el directorio de trabajo
Directory.SetCurrentDirectory(dir_path.Text);
///'''''''''''''''Inicio E-MAIL’’’’’’’’’’’’’’’’’’’’’’’’’’
// CONFIGURACION DEL MENSAJE
System.Net.Mail.MailMessage Envio = new
System.Net.Mail.MailMessage();
Envio.To.Add(MDestino.Text);
Envio.From = new MailAddress("correo emisor", "Nombre
Usuario", System.Text.Encoding.UTF8);
for (index = 0; index <= 0; index++)
{
System.Net.Mail.Attachment adjunto = new
System.Net.Mail.Attachment(tabla1[index]);
Envio.Attachments.Add(adjunto);
}
Envio.Subject = titulo.Text;
Envio.SubjectEncoding = System.Text.Encoding.UTF8;
Envio.Body = mensaje.Text;
Envio.BodyEncoding = System.Text.Encoding.UTF8;
Envio.Priority = System.Net.Mail.MailPriority.Normal;
Envio.IsBodyHtml = false;
//CONFIGURACIÓN DEL STMP
SmtpClient _SMTP = new SmtpClient();
_SMTP.Credentials = new
System.Net.NetworkCredential("Correo Emisor","Contraseña"); // Del
que envia
_SMTP.Host = "smtp.gmail.com";
_SMTP.Port = 587; // este port acepta envio de files
adjuntos (Comentario echo por dillon)
_SMTP.EnableSsl = true; //Importante, a diferiencia de
otros como Gmail, Yahoo no soporta SSL.
// se coloca true si es Gmail (Comentario echo por dillon)
//ENVIO DEL MENSAJE
_SMTP.Send(Envio);
// Restablece Directorio
Directory.GetCurrentDirectory();
// FIN ;-D
MessageBox.Show("send file successful");
}

private void MDestino_TextChanged(object sender, EventArgs e)
{

}

private void titulo_TextChanged(object sender, EventArgs e)
{

}

private void dir_path_TextChanged(object sender, EventArgs e)
{

}

private void cargas_Click(object sender, EventArgs e)
{

// carga de archivos a enviar, aun no desarrollado
// sólo se coloca el nombre del archivo a enviar "a mano", sorry
Directory.SetCurrentDirectory(dir_path.Text); //
directorio donde residen los archivos a enviar
tabla1[0] = "na.flv"; // archivos para enviar
//tabla1[1] = "archive.A02";
//tabla1[2] = "archive.A11";
//tabla1[3] = "archive.A04";
//tabla1[4] = "archive.A19";
//tabla1[5] = "archive.A06";
//tabla1[6] = "archive.A07";
//tabla1[7] = "archive.A08";
MessageBox.Show("Load successful");
}
}
}



Todo va bien, envía los correos, incluso con archivos adjuntos (hasta
ahora lo he probado de
gmail a gmail)

Pero hay un límite a tamaño del o los archivos que no debe superar los
3,5 mb. para que el
programa no de error.

Probe directamente con gmail enviar un archivo de 10 mb, y note que
hace una precarga del
archivo (si te fijas hay una barra de progreso), y luego puedes enviar
el e-mail.

Lo que a mi me parece, es que el adjunto es precargado o preenviado, y
se me figura que se almacena temporalmente, ya sea en la cuenta del
receptor o en otro sitio.

A lo que voy es que el archivo debe de ser fragmentado y enviado en
paquetes, al destinatario o algun lugar prestablecido, esa es mi
duda ?

Como ? emular esa precarga (usando codigo), para superar el límite de
los 3,5 mb. ?

de ante mano gracias.
 

Leer las respuestas

#1 Carlos
29/09/2011 - 16:48 | Informe spam
hola Dillon,

supongo que tienes que buscar funciones nativas,
pero creo que es muy dificil que alguen del foro
que no haya usado antes codigos parecidos tenga idea de
que debes usar; claro, si no es limitacion de gmail,
que no creo que este sea el caso, porque sino no
preguntarias en este foro

saludo
Carlos

"Dillon" wrote in message
news:
Hola Amigos, tengo la siguiente inquietud, estoy probando un programa
para mandar e-mail usando codigo c sharp:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net.Mail;
//using AppEx = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
// using Microsoft.Office.Interop.Excel;
namespace send
{
public partial class Form1 : Form
{
public string[] tabla1 = new string[108]; // 108 elementos
string

public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{

}
private void send_Click(object sender, EventArgs e)
{
int index;
// Establecer el directorio de trabajo
Directory.SetCurrentDirectory(dir_path.Text);
///'''''''''''''''Inicio E-MAIL’’’’’’’’’’’’’’’’’’’’’’’’’’
// CONFIGURACION DEL MENSAJE
System.Net.Mail.MailMessage Envio = new
System.Net.Mail.MailMessage();
Envio.To.Add(MDestino.Text);
Envio.From = new MailAddress("correo emisor", "Nombre
Usuario", System.Text.Encoding.UTF8);
for (index = 0; index <= 0; index++)
{
System.Net.Mail.Attachment adjunto = new
System.Net.Mail.Attachment(tabla1[index]);
Envio.Attachments.Add(adjunto);
}
Envio.Subject = titulo.Text;
Envio.SubjectEncoding = System.Text.Encoding.UTF8;
Envio.Body = mensaje.Text;
Envio.BodyEncoding = System.Text.Encoding.UTF8;
Envio.Priority = System.Net.Mail.MailPriority.Normal;
Envio.IsBodyHtml = false;
//CONFIGURACIÓN DEL STMP
SmtpClient _SMTP = new SmtpClient();
_SMTP.Credentials = new
System.Net.NetworkCredential("Correo Emisor","Contraseña"); // Del
que envia
_SMTP.Host = "smtp.gmail.com";
_SMTP.Port = 587; // este port acepta envio de files
adjuntos (Comentario echo por dillon)
_SMTP.EnableSsl = true; //Importante, a diferiencia de
otros como Gmail, Yahoo no soporta SSL.
// se coloca true si es Gmail (Comentario echo por dillon)
//ENVIO DEL MENSAJE
_SMTP.Send(Envio);
// Restablece Directorio
Directory.GetCurrentDirectory();
// FIN ;-D
MessageBox.Show("send file successful");
}

private void MDestino_TextChanged(object sender, EventArgs e)
{

}

private void titulo_TextChanged(object sender, EventArgs e)
{

}

private void dir_path_TextChanged(object sender, EventArgs e)
{

}

private void cargas_Click(object sender, EventArgs e)
{

// carga de archivos a enviar, aun no desarrollado
// sólo se coloca el nombre del archivo a enviar "a mano", sorry
Directory.SetCurrentDirectory(dir_path.Text); //
directorio donde residen los archivos a enviar
tabla1[0] = "na.flv"; // archivos para enviar
//tabla1[1] = "archive.A02";
//tabla1[2] = "archive.A11";
//tabla1[3] = "archive.A04";
//tabla1[4] = "archive.A19";
//tabla1[5] = "archive.A06";
//tabla1[6] = "archive.A07";
//tabla1[7] = "archive.A08";
MessageBox.Show("Load successful");
}
}
}



Todo va bien, envía los correos, incluso con archivos adjuntos (hasta
ahora lo he probado de
gmail a gmail)

Pero hay un límite a tamaño del o los archivos que no debe superar los
3,5 mb. para que el
programa no de error.

Probe directamente con gmail enviar un archivo de 10 mb, y note que
hace una precarga del
archivo (si te fijas hay una barra de progreso), y luego puedes enviar
el e-mail.

Lo que a mi me parece, es que el adjunto es precargado o preenviado, y
se me figura que se almacena temporalmente, ya sea en la cuenta del
receptor o en otro sitio.

A lo que voy es que el archivo debe de ser fragmentado y enviado en
paquetes, al destinatario o algun lugar prestablecido, esa es mi
duda ?

Como ? emular esa precarga (usando codigo), para superar el límite de
los 3,5 mb. ?

de ante mano gracias.

Preguntas similares