Erreur lors de l'envoi de mail via Java Mail API?
J'ai eu d'erreur suivant lorsque vous essayez d'envoyer un email via Java Mail API? Que signifie cette erreur signifie?
javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketTimeoutException: Read timed out
javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketTimeoutException: Read timed out
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2210)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1950)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642)
at javax.mail.Service.connect(Service.java:317)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
Voici mon code, j'ai mis tous les paramètres (de, à , les sujets et les pièces jointes)
public static void send(MailUtil mailUtil) throws MessagingException {
MimeMessage message = new MimeMessage(session);
if (props.getProperty(IConstants.DL_MAIL_CONFIGURATION.MAIL_SENDER) != null) {
message.setFrom(new InternetAddress(props.getProperty(IConstants.DL_MAIL_CONFIGURATION.MAIL_SENDER)));
} else {
message.setFrom(new InternetAddress(mailUtil.getFrom()));
}
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(mailUtil.getTo()));
if (mailUtil.getBcc() != null && mailUtil.getBcc().trim().length() > 0) {
message.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(mailUtil.getBcc()));
} else {
message.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(""));
}
message.setSubject(mailUtil.getSubject(), "UTF-8");
//Check for files list and attach them.
if (mailUtil.attachmentFiles != null && mailUtil.attachmentFiles.size() > 0) {
Multipart multipart = new MimeMultipart();
//Set content.
BodyPart messageBodyPart =new MimeBodyPart();
messageBodyPart.setContent(mailUtil.getContent(), "text/plain; charset=utf-8");
multipart.addBodyPart(messageBodyPart);
//Attach files.
for (File file : mailUtil.attachmentFiles) {
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(file.getName());
multipart.addBodyPart(messageBodyPart);
}
message.setContent(multipart);
} else {
//message.setContent("<h1>Hello world</h1>", "text/html");
message.setContent(mailUtil.getContent(), "text/html; charset=UTF-8");
}
Transport.send(message);
}
Je pense juste est-il un problème avec mon paramétrée?
Belows est ma configuration
mail.smtp.port=465
mail.smtp.starttls.enable=true
mail.smtp.auth=true
mail.smtp.socketFactory.port=465
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.timeout=25000
mail.smtp.host=smtp.gmail.com
mail.username = username@gmail.com
mail.password = mypassword
mail.sender = sender@gmail.com
mail.receiver = receiver@gmail.com
mail.subject = mysubject
Je suis en utilisant google serveur de messagerie! Je ne pense qu'il y est de problème!
Belows est session initiation
final String userName = props.getProperty(IConstants.DL_MAIL_CONFIGURATION.MAIL_USERNAME);
final String passWord = props.getProperty(IConstants.DL_MAIL_CONFIGURATION.MAIL_PASSWORD);
session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName,
passWord);
}
});
Merci de partager le code que bien sans elle, difficile de vous aider
Vous avez besoin de l'information sur MessageingException vérifier avec l'url stackoverflow.com/questions/5659325/...
Il y a un moment là-bas, donc probablement votre serveur de messagerie est soit inaccessible ou les propriétés de configuration n'est pas correcte.
Je suis en utilisant google serveur de messagerie. Je ne pense pas avoir de problème. J'ai essayé de telnet smtp.gmail.com 465. C'est accessible
Pourriez-vous poster votre Session d'instanciation?
Vous avez besoin de l'information sur MessageingException vérifier avec l'url stackoverflow.com/questions/5659325/...
Il y a un moment là-bas, donc probablement votre serveur de messagerie est soit inaccessible ou les propriétés de configuration n'est pas correcte.
Je suis en utilisant google serveur de messagerie. Je ne pense pas avoir de problème. J'ai essayé de telnet smtp.gmail.com 465. C'est accessible
Pourriez-vous poster votre Session d'instanciation?
OriginalL'auteur Chiến Nghê | 2015-07-21
Vous devez vous connecter pour publier un commentaire.
Je crois qu'il est absolument a trait à la configuration du serveur.
Lorsque je change la configuration de port à partir de 465 à 587, elle n'en résout mon problème!
Enfin, merci à vous les gars pour votre aide!
OriginalL'auteur Chiến Nghê
Votre code et de configuration contiennent un grand nombre de ces erreurs les plus courantes. En particulier, l'utilisation de Session.getDefaultInstance peut signifier que vous n'êtes pas à l'aide de la configuration que vous pensez que vous êtes en utilisant. Si la fixation n'est pas résolu votre problème, post le JavaMail session de la sortie de débogage.
OriginalL'auteur Bill Shannon
Je ne suis pas sûr de savoir pourquoi vous utilisez un "mail" objet pour configurer les propriétés de la connexion, au lieu d'essayer ceci, cela devrait fonctionner, je l'ai testé moi-même:
OriginalL'auteur Typo