English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Envoyer E en utilisant une application Java-JavaMail est très simple, mais avant tout, vous devriez installer l'API JavaMail et le Java Activation Framework (JAF) sur votre machine.
Vous pouvez télécharger la dernière version de JavaMail,ouvrez la page web à droite, il y a Téléchargements cliquez dessus pour le télécharger.
Vous pouvez télécharger la dernière version de JAF (version 1.1.1)。
Vous pouvez également utiliser le lien de téléchargement fourni sur ce site :
Téléchargez et décompressez ces fichiers, vous trouverez dans le répertoire de niveau supérieur créé quelques fichiers jar de ces applications. Vous devez mettre mail.jar et activation.jar Ajoutez ce fichier à votre CLASSPATH.
Si vous utilisez un serveur de messagerie tiers comme le serveur SMTP de QQ, vous pouvez consulter l'exemple complet de l'authentification utilisateur en bas de l'article.
Voici un exemple de l'envoi d'un simple E-mail的实例。假设你的本地主机已经连接到网络。
// Nom de fichier SendEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args) { // Email du destinataire String to = "[email protected]"; // Email de l'expéditeur String from = "[email protected]"; // 指定发送邮件的主机为 localhost String host = "localhost"; // Obtenir les propriétés du système Properties properties = System.getProperties(); // Configurer le serveur de messagerie properties.setProperty("mail.smtp.host", host); // Obtenir l'objet session par défaut Session session = Session.getDefaultInstance(properties); try{ // Créer un objet MimeMessage par défaut MimeMessage message = new MimeMessage(session); // Set From: header field message.setFrom(new InternetAddress(from)); // Set To: header field message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: header field message.setSubject("This is the Subject Line!"); // Set message body message.setText("This is actual message"); // Send message Transport.send(message); System.out.println("Message envoyé avec succès..."); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Compiler et exécuter ce programme pour envoyer un simple E-mail:
$ java SendEmail Message envoyé avec succès...
Si vous souhaitez envoyer un e-Si vous envoyez un email à plusieurs destinataires, utilisez la méthode suivante pour spécifier plusieurs ID de destinataires :
void addRecipients(Message.RecipientType type, Address[] addresses) lève MessagingException
Voici la description des paramètres :
type:Doit être réglé en TO, CC ou BCC, ici CC signifie copie, BCC signifie copie cachée. Exemple :Message.RecipientType.TO
addresses: 这是 email ID 的数组。在指定电子邮件 ID 时,你将需要使用 InternetAddress() 方法。
下面是一个发送 HTML E-mail 的实例。假设你的本地主机已经连接到网络。
和上一个实例很相似,除了我们要使用 setContent() 方法来通过第二个参数为 "text/html",来设置内容来指定要发送HTML 内容。
// 文件名 SendHTMLEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendHTMLEmail { public static void main(String [] args) { // Email du destinataire String to = "[email protected]"; // Email de l'expéditeur String from = "[email protected]"; // 指定发送邮件的主机为 localhost String host = "localhost"; // Obtenir les propriétés du système Properties properties = System.getProperties(); // Configurer le serveur de messagerie properties.setProperty("mail.smtp.host", host); // 获取默认的 Session 对象。 Session session = Session.getDefaultInstance(properties); try{ // 创建默认的 MimeMessage 对象。 MimeMessage message = new MimeMessage(session); // Set From: header field message.setFrom(new InternetAddress(from)); // Set To: header field message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置 Subject: 头字段 message.setSubject("This is the Subject Line!"); // 发送 HTML 消息, 可以插入html标签 message.setContent("<h1>This is actual message</h1>", "text/html" ); // Send message Transport.send(message); System.out.println("Message envoyé avec succès..."); }catch (MessagingException mex) { mex.printStackTrace(); } } }
编译并运行此程序来发送HTML e-mail:
$ java SendHTMLEmail Message envoyé avec succès...
下面是一个发送带有附件的 E-mail的实例。假设你的本地主机已经连接到网络。
// 文件名 SendFileEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendFileEmail { public static void main(String [] args) { // Email du destinataire String to = "[email protected]"; // Email de l'expéditeur String from = "[email protected]"; // 指定发送邮件的主机为 localhost String host = "localhost"; // Obtenir les propriétés du système Properties properties = System.getProperties(); // Configurer le serveur de messagerie properties.setProperty("mail.smtp.host", host); // 获取默认的 Session 对象。 Session session = Session.getDefaultInstance(properties); try{ // 创建默认的 MimeMessage 对象。 MimeMessage message = new MimeMessage(session); // Set From: header field message.setFrom(new InternetAddress(from)); // Set To: header field message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置 Subject: 头字段 message.setSubject("This is the Subject Line!"); // 创建消息部分 BodyPart messageBodyPart = new MimeBodyPart(); // Message messageBodyPart.setText("Ceci est le corps du message"); // Créer un message multiparti Multipart multipart = new MimeMultipart(); // Configurer la partie texte du message multipart.addBodyPart(messageBodyPart); // Partie jointe messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // Envoyer le message complet message.setContent(multipart); // Send message Transport.send(message); System.out.println("Message envoyé avec succès..."); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Compilez et exécutez votre programme pour envoyer un e-mail avec une pièce jointe.
$ java SendFileEmail Message envoyé avec succès...
Si vous devez fournir un nom d'utilisateur et un mot de passe à e-Pour atteindre l'objectif de l'authentification de l'utilisateur via le serveur mail, vous pouvez compléter les paramètres suivants :
props.put("mail.smtp.auth", "true"); props.setProperty("mail.user", "myuser"); props.setProperty("mail.password", "mypwd");
e-Les autres mécanismes d'envoi de mail sont cohérents avec ceux mentionnés précédemment.
Cet exemple utilise le serveur de messagerie QQ pour illustrer, vous devez ouvrir POP dans "Paramètres" => Compte lors de la connexion à l'arrière-plan de la boîte aux lettres QQ3/Service SMTP, comme indiqué dans l'image suivante :
QQ Boîte aux lettres configure le mot de passe par le biais de l'authentification par code d'autorisation :
Code Java suivant :
// Exemple d'envoi d'e-mails nécessitant un nom d'utilisateur et un mot de passe //Nom de fichier SendEmail2.java //Cet exemple utilise la boîte aux lettres QQ pour illustrer, vous devez configurer en arrière-plan de QQ import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SendEmail2 { public static void main(String [] args) { // Email du destinataire String to = "[email protected]"; // Email de l'expéditeur String from = "[email protected]"; // Spécifier le serveur principal d'envoi de l'email comme smtp.qq.com String host = "smtp.qq.com"; //Serveur de messagerie QQ // Obtenir les propriétés du système Properties properties = System.getProperties(); // Configurer le serveur de messagerie properties.setProperty("mail.smtp.host", host); properties.put("mail.smtp.auth", "true"); // Obtenir l'objet session par défaut Session session = Session.getDefaultInstance(properties, new Authenticator(){ public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("[email protected]", "Mot de passe d'authentification de l'email QQ"); //Nom d'utilisateur et mot de passe d'authentification de l'expéditeur d'email } }); try{ // Créer un objet MimeMessage par défaut MimeMessage message = new MimeMessage(session); // Set From: header field message.setFrom(new InternetAddress(from)); // Set To: header field message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: header field message.setSubject("This is the Subject Line!"); // Set message body message.setText("This is actual message"); // Send message Transport.send(message); System.out.println("Sent message successfully....from oldtoolbag.com)); }catch (MessagingException mex) { mex.printStackTrace(); } } }