Error al intentar enviar un mail
hola a todos, tengo una pequeña clase que intenta enviar un mail a traves de internet, pero no puedo aqui esta el codigo y enseguida el error que me devuelve
package mmp.usa.ejb;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class Mail {
public Mail() {
}
public static void sendMail(String mailServer, String from, String to,
String subject, String messageBody,
String[] attachments) throws
MessagingException, AddressException
{
// Setup mail server
Properties props = System.getProperties();
props.put("mail.smtp.host", mailServer);
// Get a mail session
Session session = Session.getDefaultInstance(props, null);
// Define a new mail message
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
// Create a message part to represent the body text
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(messageBody);
//use a MimeMultipart as we need to handle the file attachments
Multipart multipart = new MimeMultipart();
//add the message body to the mime message
multipart.addBodyPart(messageBodyPart);
// add any file attachments to the message
addAtachments(attachments, multipart);
// Put all message parts in the message
message.setContent(multipart);
// Send the message
Transport.send(message);
}
protected static void addAtachments(String[] attachments, Multipart multipart)
throws MessagingException, AddressException
{
for(int i = 0; i<= attachments.length -1; i++)
{
String filename = attachments[i];
MimeBodyPart attachmentBodyPart = new MimeBodyPart();
//use a JAF FileDataSource as it does MIME type detection
DataSource source = new FileDataSource(filename);
attachmentBodyPart.setDataHandler(new DataHandler(source));
//assume that the filename you want to send is the same as the
//actual file name - could alter this to remove the file path
attachmentBodyPart.setFileName(filename);
//add the attachment
multipart.addBodyPart(attachmentBodyPart);
}
}
public static void main(String args[]){
try
{
//MailClient client = new MailClient();
String server="smtp.gmail.com";
String from="tavopa7@gmail.com";
String to = "tavopa7@gmail.com";
String subject="Test";
String message="Testing";
String[] filenames =
{"C:/YServer.txt"};
sendMail(server,from,to,subject,message,filenames);
}
catch(Exception e)
{
e.printStackTrace(System.out);
}
System.out.println("Se acabo");
}
}
y este es el error
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25, response: -1
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at mmp.usa.ejb.Mail.sendMail(Mail.java:67)
at mmp.usa.ejb.Mail.main(Mail.java:108)
si alguien me puede ayudar seria magnífico, gracias a todos....
- Gustavo's blog
- Inicie sesión o regístrese para enviar comentarios
Problema resuelto....
solo tube que poner la siguiente linea de codigo
props.put("mail.smtp.port","587");
que es la configuracion del puerto
ahora el problema es este
nested exception is:
class javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. 18sm604850agb.10
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at mmp.usa.ejb.Mail.sendMail(Mail.java:69)
at mmp.usa.ejb.Mail.main(Mail.java:110)
Si lo resuelvo lo paso, de todos modos espero ayuda
TLS
El puerto 587 normalmente indica que se va a usar TLS o SSL. En las propiedades del mail debes poner
como
. Aqui hay una lista de las propiedades para javamail.
problemas javamail
hola
tengo un problema haciendo un aplicacion con mail, mi problema es el siguiente necesito enviar un correo electronico con un archivo PDF adjunto, lo raro es que en mi maquina esto funciona sin problemas, pero al ponerlo en el servidor de produccion me manda el siguente problema
javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;
boundary="----=_Part_0_23706350.1269908134280"
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:676)
alguien sabra cual sera el problema, usamos tomcat la misma version y de igual manera la jdk
ojala me puedan ayudar salu2
Versiones
Revisa las versiones de activation.jar y mail.jar
Re: problemas javamail
las versiones no creo que sea el problema por que si no no jalaria en ninguno de los 2, lo unico que veo diferente es S.O. mi maquina es win 7 y el servidor de produccion es debian tendra algo que ver??
javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; boundary="----=_Part_0_503405.1270044939425"
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:676)
Re: Versiones
¡Hola! Tengo el mismo problema que wakonet, sólo quisiera que me ayudaran a explicarme qué se tiene que hacer con activation.jar porque realmente es algo confuso.
De antemano gracias.
Nada
Si usas Java 6 ya no necesitas activation.jar. Si usas Java 5 o inferior, necesitas poner activation.jar en tu classpath para poder usar javax.mail.
host dedicado al envió de emails
estoy teniendo problemas en mi servidor web debido a los múltiples emails que se envían por la famosa factura electrónica.
para comenzar los correos no los reciben los proveedores si el remitente no esta en los contactos del destinatario.
por eso estoy pensando en algún servicios dedicado al envió de emails obviamente que tenga algún wrapper para java.
SPF & DKIM
Esto es más un problema de infraestructura que de Java. Échale un vistazo a Evita que tus correos sean marcados como spam usando registros PTR, SPF y DKIM. También puedes revisar la sección de Seguridad en Correo electrónico - Ayuda de Administrador de Google Apps
~~~
Si el envió es masivo puedes
Si el envió es masivo puedes usar
Agradecimiento
Hermano! Muchas gracias por la aportación, me di cuenta de mi error y agradezco que hayas compartido información que es de utilidad.