Je suis en train de faire une demande d'envoi d'email depuis localhost dans jsp et j'ai trouvé une erreur comme Impossible de se connecter à l'hôte SMTP: localhost, port: 25; L'exception imbriquée est la suivante: Java.net.ConnectException: connexion refusée: connectez-vous plz et donnez-moi une solution ou une idée si vous avez .pour que j'utilise le code ci-dessous ..__ Vous remerciant à l'avance.
<%@ page language="Java" import="javax.naming.*,Java.io.*,javax.mail.*,
javax.mail.internet.*,com.Sun.mail.smtp.*"%>
<html>
<head>
<title>Mail</title>
</head>
<body>
<%
try{
Session mailSession = Session.getInstance(System.getProperties());
Transport transport = new SMTPTransport(mailSession,new URLName("localhost"));
transport.connect("localhost",25,null,null);
MimeMessage m = new MimeMessage(mailSession);
m.setFrom(new InternetAddress(%><%request.getParameter("from")%><%));
Address[] toAddr = new InternetAddress[] {
new InternetAddress(%><%request.getParameter("to")%><%)
};
m.setRecipients(javax.mail.Message.RecipientType.TO, toAddr );
m.setSubject(%><%request.getParameter("subject")%><%);
m.setSentDate(new Java.util.Date());
m.setContent(%><%request.getParameter("description")%><%, "text/plain");
transport.sendMessage(m,m.getAllRecipients());
transport.close();
out.println("Thanks for sending mail!");
}
catch(Exception e){
out.println(e.getMessage());
e.printStackTrace();
}
%>
</body>
</html>
Vous devez d’abord vous assurer qu’un serveur SMTP écoute sur le port 25.
Pour savoir si vous avez le service, vous pouvez essayer d’utiliser le client TELNET, par exemple:
C:\> telnet localhost 25
(le client telnet est désactivé par défaut sur les versions les plus récentes de Windows, vous devez ajouter/activer le composant Windows à partir du Panneau de configuration. Sous Linux/UNIX, le client telnet est généralement présent par défaut.
$ telnet localhost 25
Si le délai d'attente est long, cela signifie que vous ne disposez pas du service SMTP requis. Si la connexion est établie avec succès, vous saisissez quelque chose et pouvez saisir quelque chose, le service est là.
Si vous ne disposez pas du service, vous pouvez utiliser ceux-ci:
Si vous êtes sûr de disposer déjà du service, il se peut que SMTP nécessite des informations d'identification de sécurité supplémentaires .. Si vous pouvez me dire quel serveur SMTP écoute sur le port 25, je pourrais peut-être vous en dire plus.
Le serveur de messagerie sur CentOS 6 et d'autres plates-formes de serveurs compatibles IPv6 peut être lié à IPv6 localhost (:: 1) au lieu de IPv4 localhost (127.0.0.1).
Symptômes typiques:
[root@Host /]# telnet 127.0.0.1 25
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
[root@Host /]# telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 Host ESMTP Exim 4.72 Wed, 14 Aug 2013 17:02:52 +0100
[root@Host /]# netstat -plant | grep 25
tcp 0 0 :::25 :::* LISTEN 1082/exim
Si cela se produit, assurez-vous que vous n'avez pas deux entrées pour localhost
dans /etc/hosts
avec des adresses IP différentes, comme dans l'exemple (incorrect):
[root@Host /]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost localhost4.localdomain4 localhost4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Pour éviter toute confusion, assurez-vous de n'avoir qu'une seule entrée pour localhost
, de préférence une adresse IPv4, comme ceci:
[root@Host /]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4.localdomain4 localhost4
::1 localhost6 localhost6.localdomain6