J'ai appris sur Javamail aujourd'hui. Pour la commodité d'une utilisation future, j'ai moi-même écrit un morceau de code et l'ai tapé dans un package de pot pour la commodité d'une utilisation future. hehe
Les trois codes suivants sont tout mon code. Parce que je ne sais pas comment télécharger le package JAR sur Javaeye, les amis reviennent et le font seul.
Mon code a trois classes:
The First Class: MailSenderInfo.java
La copie de code est la suivante:
package com.util.mail;
/ **
* Informations de base requises pour envoyer des e-mails
* /
import java.util.properties;
classe publique MailSenderInfo {
// L'IP et le port du serveur qui envoient le courrier
chaîne privée MailServerHost;
chaîne privée MailServerport = "25";
// l'adresse de l'expéditeur de l'e-mail
chaîne privée FromAddress;
// L'adresse du destinataire de l'e-mail
Toaddress à chaîne privée;
// Connectez-vous au nom d'utilisateur et au mot de passe du serveur d'envoi e-mail
Nom d'utilisateur de chaîne privée;
mot de passe de chaîne privé;
// L'authentification est-elle requise
Boolean privé valide = false;
// Sujet par e-mail
Sujet de chaîne privée;
// le contenu texte de l'e-mail
Contenu de chaîne privé;
// Nom de fichier de la pièce jointe des e-mails
String privé [] attachFileNames;
/ **
* Obtenez des attributs de session par e-mail
* /
Propriétés publiques getProperties () {
Propriétés p = nouvelles propriétés ();
p.put ("mail.smtp.host", this.mailServerHost);
p.put ("mail.smtp.port", this.mailServerport);
p.put ("mail.smtp.auth", valider? "true": "false");
Retour p;
}
String public getmailServerHost () {
return MailServerHost;
}
public void setMailServerHost (String MailServerHost) {
this.mailServerHost = MailServerHost;
}
String public getmailServerport () {
Retour MailServerport;
}
public void setMailServerport (String MailServerport) {
this.mailServerport = MailServerport;
}
booléen public isvalidate () {
retour valider;
}
public void setvalidate (booléen valide) {
this.validate = valider;
}
String public [] getAttachFileNames () {
return attachFileNames;
}
public void setAttachFileNames (String [] fileNames) {
this.attachFileNames = nom de fichiers;
}
String public getFromAddress () {
retour depuis ADADRESS;
}
public void setFromAddress (String fromAddress) {
this.fromAddress = FromAddress;
}
public String getPassword () {
retour de mot de passe;
}
public void setPassword (mot de passe de chaîne) {
this.password = mot de passe;
}
String public getToAddress () {
Retour ToAddress;
}
public void setToAddress (String Toaddress) {
this.toAddress = Toaddress;
}
public String getUserName () {
Retour Nom d'utilisateur;
}
public void setUsername (String username) {
this.userName = nom d'utilisateur;
}
public String getSubject () {
sujet de retour;
}
public void setSubject (String Sujet) {
this.subject = sujet;
}
public String getContent () {
retourner le contenu;
}
public void setContent (chaîne textContent) {
this.Content = textContent;
}
}
La deuxième classe: SimplemailSender.java
La copie de code est la suivante:
package com.util.mail;
Importer java.util.date;
import java.util.properties;
import javax.mail.address;
Importer javax.mail.bodyPart;
import javax.mail.mesage;
Importer javax.mail.messagingException;
Importer javax.mail.multupart;
Importer Javax.mail.Session;
Importer javax.mail.transport;
Importer javax.mail.internet.internetAddress;
Importer javax.mail.internet.mimeBodyPart;
Importer javax.mail.internet.mimeMessage;
Importer javax.mail.internet.mimemultupartit;
/ **
* Expéditeur de courrier simple (courrier sans pièces jointes)
* /
classe publique SimpleMailSender {
/ **
* Envoyer des e-mails au format texte
* @Param MailInfo Informations sur l'e-mail à envoyer
* /
public boolean sendTextMail (MailSenderInfo MailInfo) {
// déterminer si l'authentification de l'identité est requise
MyAuthenticator authenticator = null;
Propriétés Pro = MailInfo.getProperties ();
if (mailInfo.isvalidate ()) {
// Si l'authentification d'identité est requise, créez un authentificateur de mot de passe
authenticator = new myAuthenticator (MailInfo.getUserName (), MailInfo.getPassword ());
}
// Construisez une session pour envoyer des e-mails en fonction des propriétés de la session par e-mail et du validateur de mot de passe
Session SendMailSession = session.getDefaultInstance (pro, authenticatrice);
essayer {
// Créer un message mail basé sur la session
Message MailMessage = new MimeMessage (SendMailSession);
// Créer l'adresse de l'expéditeur de messagerie
Adresse de = new InternetAddress (mailInfo.getFromAddress ());
// Définissez l'expéditeur de l'e-mail
MAINMESSAGE.SETFROM (From);
// Créez l'adresse du destinataire de l'e-mail et définissez-le sur l'e-mail
Adresse à = new InternetAddress (mailInfo.getToAddress ());
MAINMESSAGE.SETRICIPIENT (Message.RecipentType.to, TO);
// définit le sujet du message électronique
MAINMESSAGE.SETSUSBject (MailInfo.getSubject ());
// définir l'heure pour envoyer des e-mails
MAINMESSAGE.SETSENTDATE (NOUVEAU DATE ());
// Définissez le contenu principal du message électronique
String MailContent = MailInfo.getContent ();
MAINMESSAGE.SETTEXT (MailContent);
// Envoi du courrier
Transport.Send (MailMessage);
Retour Vrai;
} catch (MessageSingException ex) {
ex.printStackTrace ();
}
retourne false;
}
/ **
* Envoyer des e-mails au format HTML
* @Param MailInfo Mail Informations à envoyer
* /
public statique booléen sendhtmlmail (MailSenderinfo MailInfo) {
// déterminer si l'authentification de l'identité est requise
MyAuthenticator authenticator = null;
Propriétés Pro = MailInfo.getProperties ();
// Si l'authentification d'identité est requise, créez un authentificateur de mot de passe
if (mailInfo.isvalidate ()) {
authenticator = new myAuthenticator (MailInfo.getUserName (), MailInfo.getPassword ());
}
// Construisez une session pour envoyer des e-mails en fonction des propriétés de la session par e-mail et du validateur de mot de passe
Session SendMailSession = session.getDefaultInstance (pro, authenticatrice);
essayer {
// Créer un message mail basé sur la session
Message MailMessage = new MimeMessage (SendMailSession);
// Créer l'adresse de l'expéditeur de messagerie
Adresse de = new InternetAddress (mailInfo.getFromAddress ());
// Définissez l'expéditeur de l'e-mail
MAINMESSAGE.SETFROM (From);
// Créez l'adresse du destinataire de l'e-mail et définissez-le sur l'e-mail
Adresse à = new InternetAddress (mailInfo.getToAddress ());
// Message.recipentType.to L'attribut indique que le type du récepteur est de
MAINMESSAGE.SETRICIPIENT (Message.RecipentType.to, TO);
// définit le sujet du message électronique
MAINMESSAGE.SETSUSBject (MailInfo.getSubject ());
// définir l'heure pour envoyer des e-mails
MAINMESSAGE.SETSENTDATE (NOUVEAU DATE ());
// La classe minimultupar est une classe de conteneurs qui contient des objets de type mimeBodyPart
Multipart MainPart = new MIMEMULPART ();
// Créer un contenu HTML contenant un contenu HTML
BodyPart html = new MIMEBODYPART ();
// Définir le contenu HTML
html.setContent (mailInfo.getContent (), "Text / html; charset = utf-8");
MainPart.AddBodyPart (HTML);
// Définissez l'objet Minimultupart pour envoyer du contenu
MAINMESSAGE.SetContent (MainPart);
// Envoi du courrier
Transport.Send (MailMessage);
Retour Vrai;
} catch (MessageSingException ex) {
ex.printStackTrace ();
}
retourne false;
}
}
La troisième catégorie: myAuthenticator.java
La copie de code est la suivante:
package com.util.mail;
importer javax.mail. *;
La classe publique MyAuthenticator étend l'authentificateur {
String username = null;
Chaîne mot de passe = null;
public myAuthenticator () {
}
MyAuthenticator public (nom d'utilisateur de chaîne, mot de passe de chaîne) {
this.userName = nom d'utilisateur;
this.password = mot de passe;
}
Protégé de PasswordAuthentication GetPasswordAuthentication () {{
Renvoie un nouveau mot de passe-PASTOWAUTHENTICATION (nom d'utilisateur, mot de passe);
}
}
Ce qui suit est le code en utilisant les trois classes ci-dessus:
La copie de code est la suivante:
public static void main (String [] args) {
// Cette classe définit principalement le courrier électronique
MailSendeRinfo MailInfo = new MailSenSenSinfo ();
MailInfo.setmailServerHost ("SMTP.163.com");
MailInfo.setMailServerport ("25");
MailInfo.SetValidate (true);
MailInfo.setUsername ("[email protected]");
MailInfo.SetPassword ("*********"); // votre mot de passe de messagerie
MailInfo.setFromAddress ("[email protected]");
MailInfo.setToAddress ("[email protected]");
MailInfo.SetSubject ("set le titre de boîte aux lettres");
MailInfo.SetContent ("Set Mailbox Content");
// Cette classe envoie principalement des e-mails
SimpleMailSender sms = new SimpleMailSender ();
SMS.SENDTextMail (MailInfo); // Envoi du format de texte
SMS.SENDHTMLMAIL (MAILINFO); // Envoyez le format HTML
}
Enfin, permettez-moi de vous accorder une certaine attention à:
1. À l'aide de ce code, vous pouvez remplir la fonction d'envoi d'e-mail de votre Javamail. Les trois catégories sont indispensables.
2. J'ai utilisé le package com.util.mail pour emballer ces trois classes.
3. N'utilisez pas l'adresse e-mail que vous venez de vous inscrire pour envoyer des e-mails dans le programme. Parce que vous ne pouvez pas l'envoyer. L'adresse e-mail que vous venez de vous inscrire ne vous donnera pas ces autorisations, ce qui signifie que vous ne pouvez pas passer la vérification. Vous devez utiliser l'adresse e-mail que vous utilisez fréquemment, et cela prend beaucoup de temps.
4. Un autre problème est les deux phrases de MailInfo.setmailServerhost ("SMTP.163.com"); et MailInfo.setFromAddress ("[email protected]"); Autrement dit, si vous utilisez le serveur 163SMTP, vous devez utiliser l'adresse e-mail 163 pour envoyer l'adresse e-mail.
5. Il existe de nombreuses explications sur Internet sur les erreurs de vérification de Javamail, mais je n'en vois qu'une. C'est ma troisième catégorie. Tant que vous copiez tout le code, je pense qu'il n'y aura pas de problème.