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