Envoyer l'image dans le Corps du message à l'aide de Java
J'ai été en mesure d'envoyer l'Image en tant que pièce Jointe dans un e-Mail à l'aide de Java. Je suis maintenant essayer d'envoyer la même image dans le Corps du message Comme ceci:
public static void main(String[] args) throws NoSuchProviderException, MessagingException {
System.out.println("Sending mail...");
Properties props = new Properties();
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.port", "587");
props.setProperty("mail.smtp.user", "mysusername");
props.setProperty("mail.smtp.password", "mypassword");
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>This is a test</h1>"
+ "<img src=\"C:/Users/pc/Desktop/Photos/Shammah.PNG\">",
"text/html");
message.addRecipient(Message.RecipientType.TO,
new InternetAddress("[email protected]"));
transport.connect();//This is line 46
transport.sendMessage(message,
message.getRecipients(Message.RecipientType.TO));
transport.close();
}
J'obtiens ce résultat:
Sending mail...
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
Exception in thread "main" javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:306)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at image.in.body.ImageInBody.main(ImageInBody.java:46)
Java Result: 1
Pourquoi l'authentification est défaillant alors que je suis en utilisant le nom d'utilisateur correct et le Mot de passe pour Mon compte Gmail?
Les erreurs concernent l'authentification de votre corps... quelque chose qui est mal dans vos paramètres.
OriginalL'auteur ErrorNotFoundException | 2012-11-13
Vous devez vous connecter pour publier un commentaire.
Vous devez déclarer vos images comme ceci :
De charger des images, comme MimeBodyPart et correspondent à l'unique-nom ou d'identité avec le nom de fichier de la MimeBodyPart.
OriginalL'auteur Alexandre Lavoie
voir le code ci-dessous peut être utilisé à plein
et ajouter org.apache.commons.io.jar.zip et axiom-api-1.2.6.jar et d'ajouter mail.jar et activation.jar
OriginalL'auteur Lucky
Créer un multi-parties du corps avec content-disposition en ligne et les encoder en base64 votre image.
Vérifier ce DONC pour certains détails (en Python) L'envoi de plusieurs parties des e-mails html qui contiennent des images
OriginalL'auteur Daniel Voina
D'abord, voyons ce JavaMail entrée de la FAQ de erreurs les plus courantes.
Ensuite, voir ce JavaMail entrée de la FAQ avec exemple de code pour se connecter à Gmail.
Noter qu'il n'existe pas de mail.smtp.le mot de passe" de la propriété. Puisque vous n'êtes pas fournir un mot de passe, l'authentification échoue.
OriginalL'auteur Bill Shannon
Une autre erreur commune (peu de moi aujourd'hui): l'IDENTIFIANT de Contenu d'en-tête de l'image doit être dans <crochets>. Ne pas le faire se briser certains programmes de messagerie (gmail, OS X 10.10) mais pas d'autres (Outlook, iOS <= 8.1).
OriginalL'auteur David Leppik