L'envoi d'e-mails par le biais de Java javax.mail.MessagingException: impossible de se connecter à l'hôte SMTP: localhost, port: 587;

Je suis actuellement en train de travailler sur un projet qui consiste en la création d'un .fichier jar. Ce qui suit est l'être, je suis censé l'exportation/lire le chemin d'accès d'un ami de registre, une fois que ceci est fait, je suis censé obtenir le résultat par e-mail. L'ensemble du concept est de créer le fichier jar et une fois cliqué, je reçois les résultats à travers mon e-mail depuis que j'ai fait envoyé par e-mail.

(J'espère que cela a un sens)

Alors d'abord, j'ai combiné le code suivant à lire la base de registre et afficher les touches ( je l'ai eu à partir de la populaire post sur stack overflow pour lire/écrire les registres) de sorte que le processus de lecture fonctionne très bien, maintenant, mon problème est avec l'e-mail code,

(Je ne suis pas tout à fait sûr de qui est le propriétaire d'origine de ce code est mais la totalité du crédit, il va lui)
Je vais essayer d'obtenir le concept de base de cet e-mail code du travail afin que je puisse continuer à travailler sur l'envoi de mon jar fichier en tant que pièce jointe et de le lier à mon code de manière à quand un utilisateur clique sur le fichier jar, le registre des résultats sera envoyé à moi.

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailCode {
public static void main(String[] args) throws Exception {
final String smtp_host = "smtp.gmail.com";
final String smtp_username = "[email protected]";
final String smtp_password = "password";
final String smtp_connection = "TLS";  //Use 'TLS' or 'SSL' connection
final String toEmail="[email protected]";
final String fromEmail="**@gmail.com";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
if (smtp_connection.equals("TLS")) {
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "587");
} else{
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.port", "465");
}
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(smtp_username, smtp_password);
}
});
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(fromEmail, "NoReply"));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress(toEmail, "Mr. Recipient"));
msg.setSubject("Welcome To JavaMail API");
msg.setText("JavaMail API Test - Sending email example through remote smtp server");
Transport.send(msg);
System.out.println("Email sent successfully...");
} catch (AddressException e) {
throw new RuntimeException(e);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}

C'est le message d'erreur que je reçois:

Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 587;
nested exception is:
java.net.SocketException: Permission denied: connect  
  • Vous êtes littéralement en essayant d'exécuter du code? Ne vous comprends rien de ce qu'elle fait? Pour l'enregistrement, il tente d'accéder au serveur de messagerie de gmail avec "[email protected]" en tant qu'utilisateur, et "password" comme mot de passe. Je doute que [email protected] est votre véritable adresse gmail. Et même si elle l'est, je doute que votre mot de passe est "password". Si elle l'est, vous feriez mieux de le changer maintenant.
  • oui, je sais ce que ce code est en train de faire et maintenant il n'est ni mon mot de passe ni email, je l'ai mis dans de démontrer que le nom d'utilisateur est où l'adresse e-mail doit être insérée et "mot de passe" est là le véritable mot de passe doit être inséré
  • Pouvez-vous essayer de changer hôte SMTP smtp.googlemail.com ?
  • vous faites allusion à cette ligne de code: Chaîne finale smtp_host = "smtp.gmail.com"; j'ai juste changé et c'est encore de me donner le même message d'erreur
InformationsquelleAutor Scarl | 2014-09-28