Hola,
Estoy utilizando javamail para enviar correos en lo que se pueden adjuntar archivos.
En uno de estos correos con varios archivos adjuntos de gran peso me ha saltado esta excepción:
Código:
com.sun.mail.smtp.SMTPSendFailedException: 552 5.3.4 Error: message file too big
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1634)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:889)
at org.sts.recursosComunes.utilidades.funciones.EnviarCorreo(funciones.java:1049)
at org.sts.Pyme.PantallasZul.IncidenciasyTareas.SeguimientoIncidencias.MaestroTareas.EnviarCorreo(MaestroTareas.java:7731)
at org.sts.Pyme.PantallasZul.IncidenciasyTareas.SeguimientoIncidencias.MaestroTareas.onClick$BTPublicarNotificar(MaestroTareas.java:8316)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.zkoss.zk.ui.event.GenericEventListener.onEvent(GenericEventListener.java:88)
at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:2734)
at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2705)
at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2646)
at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136)
at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.process0(EventProcessingThreadImpl.java:534)
at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.sendEvent(EventProcessingThreadImpl.java:126)
at org.zkoss.zk.ui.event.Events.sendEvent(Events.java:321)
at org.zkoss.zk.ui.event.Events.sendEvent(Events.java:331)
at org.zkoss.zk.ui.AbstractComponent$ForwardListener.onEvent(AbstractComponent.java:3172)
at org.zkoss.zk.ui.AbstractComponent.onEvent(AbstractComponent.java:2734)
at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2705)
at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2646)
at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136)
at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.process0(EventProcessingThreadImpl.java:534)
at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.run(EventProcessingThreadImpl.java:461)
Según me ha parecido leer javamail no tiene un limite de tamaño para el envío de emails pero puede ser que el servidor smtp si lo tenga.
Hay alguna manera de saber cual es el máximo tamaño permitido al enviar un email?
Por cierto, este es el código que utilizo para enviar los correos:
Código:
// Propiedades para la conexión con el servidor de envío
Properties props = new Properties();
props.put("mail.smtp.host",servidorCorreoSMTP); // Servidor de correro externo
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.mail.sender",sDe);
props.put("mail.smtp.user", usuarioServidor);
props.put("mail.smtp.auth", "true");
props.setProperty("mail.smtp.ssl.trust", servidorCorreoSMTP);
props.put("mail.smtp.port", puerto);
Session session = Session.getDefaultInstance(props);
Multipart multiParte = new MimeMultipart();
BodyPart textoPlantilla = new MimeBodyPart();
textoPlantilla.setContent(contenido, "text/html");
multiParte.addBodyPart(textoPlantilla);
// Documentos adjuntos
if (!(listaAdjuntos == null)) {
//Recorremos los documentos adjuntos
for (I = 1; I <= listaAdjuntos.count() + 1; I++) {
//Obtenemos el documento
if (!listaAdjuntos.extract(I, 1).toString().equals("")) {
MimeBodyPart adjunto = new MimeBodyPart();
adjunto.attachFile(listaAdjuntos.extract(I, 1).toString());
multiParte.addBodyPart(adjunto); // Añadimos
}
}
}
// Mensaje en si
Message message = new MimeMessage(session);
//Al constructor InternetAddress tenemos que pasarle una dirección de email y, opcionalmente,
//un nombre que aparecerá como From o como To
// De
message.setFrom(new InternetAddress((String) props.get("mail.smtp.mail.sender"),nombreRemitente));
// Lista de a quién va dirigido el correo
if (!(ListaPara == null)) {
for (I = 1; I <= ListaPara.count(1) + 1; I++) {
message.addRecipient(Message.RecipientType.TO,new InternetAddress(ListaPara.extract(1, I).toString()));
}
message.setSubject(sAsunto); // Asunto
// Añadimos todo el contenido multiparte
message.setContent(multiParte);
// Enviamos
Transport t = session.getTransport("smtp");
t.connect((String) props.get("mail.smtp.user"), PasswordServidor);
t.sendMessage(message, message.getAllRecipients());
t.close();
}
Gracias!