Est-il possible d'envoyer du courrier avec Javamail sans authentification?
J'ai été en copiant ce code
http://www.tutorialspoint.com/java/java_sending_email.htm
et je reçois le message d'erreur
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 465;
nested exception is:
java.net.SocketException: Connection reset
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1963)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:345)
at javax.mail.Service.connect(Service.java:226)
at javax.mail.Service.connect(Service.java:175)
at racetiming.MailSender.send(MailSender.java:68)
Toutes les solutions, je suis à la recherche sont à l'aide de l'authentification pour se connecter à un serveur de messagerie, mais je vais essayer de le faire sans connexion. N'est-ce pas possible? Semble que les tutoriels sont en train de le faire, sans informations d'identification.
Voici l'intégralité de mon code.
public class MailSender
{
public static void send(Racer r, String filename){
//Recipient's email ID needs to be mentioned.
String to = r.getEmail();
//Sender's email ID needs to be mentioned
String from = "[email protected]";
//Assuming you are sending email from localhost
String host = "localhost";
//Get system properties
Properties properties = System.getProperties();
//Setup mail server
properties.setProperty("mail.smtp.host", host);
properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
//Get the default Session object.
Session session = Session.getDefaultInstance(properties);
try{
//Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
//Set From: header field of the header.
message.setFrom(new InternetAddress(from));
//Set To: header field of the header.
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
//Set Subject: header field
message.setSubject("Report for " + r.getName());
//Create the message part
BodyPart messageBodyPart = new MimeBodyPart();
//Fill the message
messageBodyPart.setText("See attachment");
//Create a multipart message
Multipart multipart = new MimeMultipart();
//Set text message part
multipart.addBodyPart(messageBodyPart);
//Part two is attachment
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
//Send the complete message parts
message.setContent(multipart);
//Send message
Transport transport = session.getTransport("smtps");
transport.connect();
transport.sendMessage(message, message.getAllRecipients());
System.out.println("Sent message successfully....");
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
OriginalL'auteur Michael Groleau | 2013-11-06
Vous devez vous connecter pour publier un commentaire.
C'est possible, mais vous avez besoin de rechercher vous-même les enregistrements MX dans le DNS. Vous pouvez utiliser dnsjava-2.16.jar de la bibliothèque. Ajouter dnsjava et javax.mail bibliothèques de chemin de compilation pour compiler l'exemple de code suivant. Vérifiez votre dossier de spam après avoir tenté de livrer le message de cette manière: car il n'y a pas de signature DKIM, et l'adresse IP que vous utilisez pour envoyer l'e-mail n'appartiennent pas à des adresses autorisées pour cet hôte ("yourhost.org"), la réception d'e-mails du serveur sera susceptible de mettre l'e-mail dans le dossier spam.
OriginalL'auteur Serge Rogatch
C'est à votre serveur si une authentification est nécessaire ou pas. Certains intranet, serveurs de messagerie ne pourrait pas. La plupart des serveurs de messagerie internet sera, à prévenir les abus.
Vous aurez aussi envie de lire ce JavaMail entrée de la FAQ sur erreurs les plus courantes.
OriginalL'auteur Bill Shannon