Je dois envoyer un simple message html avec JavaMail. Et quand j'ai essayé de trouver de beaux exemples avec des explications sur Internet, chaque exemple suivant m'a rendu plus en colère et en colère.Comment configurer l'environnement pour utiliser JavaMail?
Tous ces exemples idiots contiennent du code Java copié et collé qui ne diffère que par des commentaires et un bon avertissement que vous devez d'abord configurer votre serveur smtp et pop3. Je comprends que personne ne veut faire une publicité pour certains produits concrets mais la configuration du serveur est la partie la plus difficile. Alors, quelqu'un peut-il me donner des informations vraiment utiles (sans code java) sur la configuration du serveur concret (Kerio, par exemple, ou tout autre)?
Ce que j'est maintenant la prochaine exception:
250 2.0.0 Reset state
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Relaying to <[email protected]> denied (authentication required)
UPD. La reformulation simple de tout le texte précédent est: imaginez que vous avez Windows, jdk, et rien d'autre. Et vous voulez faire un programme Java et l'exécuter sur votre machine. Et ce programme devrait envoyer "Bonjour tout le monde!" à votre compte Gmail. Listez vos étapes.
UPD2. Voici le code:
Properties props = new Properties();
props.setProperty ("mail.transport.protocol", "smtp");
props.setProperty ("mail.host", "smtp.gmail.com");
props.setProperty ("mail.user", "[email protected]");
props.setProperty ("mail.password", "password_from_email_above");
Session mailSession = Session.getDefaultInstance (props, null);
mailSession.setDebug (true);
Transport transport = mailSession.getTransport();
MimeMessage message = new MimeMessage (mailSession);
message.setSubject ("HTML mail with images");
message.setFrom (new InternetAddress ("[email protected]"));
message.setContent ("<h1>Hello world</h1>", "text/html");
message.addRecipient (Message.RecipientType.TO,
new InternetAddress ("[email protected]"));
transport.connect();
transport.sendMessage (message,
message.getRecipients (Message.RecipientType.TO));
Et exception:
RSET
250 2.1.5 Flushed 3sm23455365fge.10
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. 3sm23455365fge.10
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886)
at com.teamdev.imgmail.MailSender.main(MailSender.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
...
Votre question est beaucoup trop vague pour y répondre en l'état. Pouvez-vous nous en dire plus sur vos hôtes et les composants qui fonctionnent dessus? Allez-y et nommez les marques, on s'en fout. Dites-nous ce que vous essayez de faire, ce qui fonctionne et ce qui ne l'est pas. –
@Carl Smotricz: J'ai ajouté la section UPD. – Roman
La mise à jour est une * beaucoup * meilleure question. Pour cela, il s'avère que vous n'avez même pas besoin d'un serveur SMTP, car Google est en train d'en exploiter un assez gros. –