Envoyer un email en jsp
Auteur:Eve Cole
Date de mise à jour:2009-07-02 17:13:09
Envoyer un email en jsp
1. Nous pouvons envoyer du courrier via n'importe quel moteur JSP (tel que JSWDK) prenant en charge le package sun.net.smtp dans la spécification sun.
(Avertissement : utilisez le package de spécifications Sun interne intégré, ce qui affectera la portabilité de votre programme jsp.)
Le scriptlet suivant utilise la classe SmtpClient pour envoyer des e-mails dans des fichiers jsp.
2. JavaMail est l'API de messagerie Java officielle, veuillez vous référer à http://java.sun.com/products/javamail/. Bien que l'API soit plus riche ou plus complexe que sun.net.smtp.SmtpClient, elle est portable. Une classe MailSender est recréée ici, qui contient l'API JavaMail. Comme indiqué ci-dessous :
// Le préfixe ms_ est destiné aux variables de classe MailSender
// Le préfixe str est pour String
// Le préfixe astr est pour un tableau de chaînes
// Le préfixe strbuf est pour StringBuffers, etc.
expéditeur de courrier public (
Chaîne strFrom, // expéditeur
String[] astrTo, // destinataire(s)
String[] astrBCC, // destinataire(s) Cci, facultatif
Chaîne strSujet, // sujet
débogage booléen)
{
ms_strFrom = strFrom; // de qui provient le message
ms_astrTo = astrTo; // à qui (pluriel) le message est-il destiné
ms_debugging = débogage; // à qui (pluriel) le message est-il destiné
// définit l'hôte
Propriétés props = new Properties();
props.put("mail.smtp.host", ms_strSMTPHost);
// crée des propriétés et obtient la session par défaut
Session session = Session.getDefaultInstance(props, null);
session.setDebug(ms_debugging);
essayer {
//crée un message
ms_msg = nouveau MimeMessage (session);
// définit le départ
Adresse Internet de = new Adresse Internet (strFrom);
ms_msg.setFrom(de);
// définit le sur
Adresse InternetAddress[] = new InternetAddress[astrTo.length];
pour (int i = 0; i astrTo.length; ++i)
{
adresse[i] = new InternetAddress(astrTo[i]);
}
ms_msg.setRecipients(Message.RecipientType.TO, adresse);
// définit les destinataires Cci
si (astrBCC != null)
{
adresse = nouvelle adresse Internet[astrBCC.length] ;
pour (int i = 0; i astrBCC.length; ++i)
{
eh.dbg("astrBCC[" + i + "] est : '" + astrBCC[i] + "'");
adresse[i] = nouvelle adresse Internet (astrBCC[i]);
}
ms_msg.setRecipients(Message.RecipientType.BCC, adresse);
}
// définit le sujet
ms_msg.setSubject(strSubject);
// configure le tampon de chaîne qui contiendra le message
ms_strbufMsg = new StringBuffer();
} catch (MessagingException mex) {
mex.printStackTrace(System.err);
} catch (Exception ex) {
ex.printStackTrace(System.err);
}
}
public void ms_add (String strText)
{
ms_strbufMsg.append(strText);
}
public vide ms_send()
{
essayer {
// définit le contenu en texte brut
ms_msg.setContent(new String(ms_strbufMsg), "text/plain");
// et loin
Transport.send(ms_msg);
} catch (Exception ex) {
System.out.println("Exception interceptée dans MailSender.ms_send : " + ex);
}
}