En prenant un projet web comme exemple, le code peut être transplanté
Tout d’abord, importez le package mail.jar, puis créez votre propre classe
1:Classe HTMLSender
Copiez le code comme suit :
paquet com.txq.mail ;
importer java.util.Properties ;
importer javax.mail.Message ;
importer javax.mail.MessagingException ;
importer javax.mail.NoSuchProviderException ;
importer javax.mail.Session ;
importer javax.mail.Transport ;
importer javax.mail.internet.AddressException ;
importer javax.mail.internet.InternetAddress ;
importer javax.mail.internet.MimeMessage ;
importer javax.mail.internet.MimeMultipart ;
importer javax.mail.internet.MimeUtility ;
/**
*
* @auteur Administrateur
*
*/
classe publique HTMLSender {
message MimeMessage privé ;
accessoires de propriétés privées ;
séance privée ;
nom de chaîne privé = "" ;
mot de passe de chaîne privée = "" ;
public HTMLSender (hôte de chaîne, nom de chaîne, mot de passe de chaîne)
{
this.name = nom ;
this.password = mot de passe ;
accessoires = System.getProperties();
props.put("mail.smtp.host", hôte);
props.put("mail.smtp.auth","true");
MyAuthenticator auth = new MyAuthenticator(nom, mot de passe);
session = Session.getDefaultInstance(props,auth);
message = nouveau MimeMessage (session);
new MimeMultipart();
}
public void setFrom (Chaîne de)
{
essayer
{
message.setFrom (nouvelle adresse Internet (de));
}
attraper (AddressException e)
{
e.printStackTrace();
}
attraper (MessagingException e)
{
e.printStackTrace();
}
}
public void setTo (Chaîne à)
{
essayer
{
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
}
catch (AddressException e)
{
e.printStackTrace();
}
catch (MessagingException e)
{
e.printStackTrace();
}
}
public void setSubject (Sujet de chaîne)
{
essayer
{
message.setSubject(sujet);
}
attraper (Exception e)
{
e.printStackTrace();
}
}
public void setContect (contenu de la chaîne)
{
essayer
{
message.setContent(content,"text/html;charset=utf-8");
}
attraper (Exception e)
{
e.printStackTrace();
}
}
envoi booléen public()
{
essayer
{
Transport transport = session.getTransport("smtp");
transport.connect((String)props.get("mail.smtp.host"),nom,mot de passe);
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.close();
renvoie vrai ;
}
catch (NoSuchProviderException e)
{
e.printStackTrace();
renvoie faux ;
}
catch (MessagingException e)
{
e.printStackTrace();
renvoie faux ;
}
}
}
2 : classe MyAuthenticator
Copiez le code comme suit :
paquet com.txq.mail ;
importer javax.mail.Authenticator ;
importer javax.mail.PasswordAuthentication ;
la classe publique MyAuthenticator étend Authenticator{
Nom de la chaîne ;
Mot de passe de chaîne ;
public MyAuthenticator (nom de chaîne, mot de passe de chaîne)
{
this.name = nom ;
this.password = mot de passe ;
getPasswordAuthentication();
}
protégé par mot de passeAuthentication getPasswordAuthentication()
{
renvoie un nouveau mot de passeAuthentication (nom, mot de passe);
}
}
3 : classe MailAction
Copiez le code comme suit :
paquet com.txq.action ;
importer java.io.PrintWriter ;
importer com.opensymphony.xwork2.ActionSupport ;
importer com.txq.mail.HTMLSender ;
la classe publique MailAction étend ActionSupport {
e-mail de chaîne privée ;
chaîne publique sendEmail(){
//Agent hôte-Sina
Chaîne hôte = "smtp.sina.cn" ;
//Compte-Sina
Nom de la chaîne = "followmusic" ;
//Mot de passe-Mot de passe Sina
Mot de passe de chaîne = "followmusic" ;
//Créer un objet email
HTMLSender mail = new HTMLSender (hôte, nom, mot de passe) ;
//Envoi du compte
mail.setFrom("[email protected]");
//compte de messagerie
mail.setTo("[email protected]");
//Objet de l'e-mail
mail.setSubject("Intérêt Tao");
//Contenu de l'e-mail
mail.setContect("Votre ami vous invite à venir rechercher vos centres d'intérêt~");
si(mail.send())
{
retourner le SUCCÈS ;
}
autre
{
renvoie "erreur" ;
}
}
chaîne publique getEmail() {
retourner l'e-mail ;
}
public void setEmail(String email) {
this.email = e-mail ;
}
}