Comment faire pour configurer l'environnement d'utilisation JavaMail?

J'ai besoin d'envoyer html simple message avec JavaMail. Et quand j'ai essayé de trouver quelques beaux exemples avec des explications sur l'Internet, chaque exemple suivant, on m'a fait encore plus en colère et la colère.

Tous ceux idiot exemples contiennent copié et collé le code Java qui ne diffère que dans les commentaires et un joli avertissement que vous devez d'abord vos config smtp et pop3 server.

Je comprends que personne ne veut faire un faire de la publicité pour certains produits en béton, mais la configuration du serveur est à mon humble avis la partie la plus difficile. Donc, quelqu'un peut-il me donner quelques informations vraiment utiles (sans code java) sur la configuration de béton serveur (Kerio, par exemple, ou d'un autre)?

Ce que j'ai maintenant c'est l'exception suivante:

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 <mymail@mycompany.com> denied (authentication required)

UPD. Simple reformulation de l'ensemble du texte précédent: imagine que vous avez Windows, jdk, et rien d'autre. Et vous voulez faire un programme en java et l'exécuter sur votre machine. Et ce programme devrait envoyer "Hello world!" à votre compte gmail. Liste de 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 l'exception est la suivante:

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 répondre comme il se trouve. Veuillez nous en dire plus sur vos hôtes et les composants en cours d'exécution sur elle. Aller de l'avant et le nom de la marque, nous n'avons pas de soins. Dites-nous ce que vous essayez de faire, ce qui fonctionne et ce qui ne l'est pas.
Smotricz: j'ai ajouté UPD section.
La mise à jour est un bien meilleure question. Pour cela, il s'avère que vous n'avez même pas besoin d'un serveur SMTP de votre propre, que Google arrive à être l'exploitation d'un assez gros pour vous.
Ma réponse mis à jour.

OriginalL'auteur Roman | 2009-12-22