Senden Sie eine E-Mail in JSP
Autor:Eve Cole
Aktualisierungszeit:2009-07-02 17:13:09
Senden Sie eine E-Mail in JSP
1. Wir können E-Mails über jede JSP-Engine (z. B. JSWDK) senden, die das Paket sun.net.smtp in der Sun-Spezifikation unterstützt.
(Warnung: Verwenden Sie das integrierte interne Sun-Spezifikationspaket, das sich auf die Portabilität Ihres JSP-Programms auswirkt.)
Das folgende Skriptlet verwendet die SmtpClient-Klasse, um E-Mails in JSP-Dateien zu senden.
2. JavaMail ist die offizielle Java-Mail-API. Weitere Informationen finden Sie unter http://java.sun.com/products/javamail/. Obwohl die API umfangreicher und komplexer ist als sun.net.smtp.SmtpClient, ist sie portierbar. Hier wird eine MailSender-Klasse neu erstellt, die die JavaMail-API enthält. Wie unten gezeigt:
// ms_-Präfix ist für MailSender-Klassenvariablen
// str-Präfix steht für String
// Astr-Präfix steht für Array von Strings
// strbuf-Präfix ist für StringBuffers usw.
öffentlicher MailSender(
String strFrom, // Absender
String[] astrTo, // Empfänger
String[] astrBCC, // BCC-Empfänger, optional
String strSubject, // Betreff
boolesches Debuggen)
{
ms_strFrom = strFrom; // von wem die Nachricht stammt
ms_astrTo = astrTo; // an wen (Plural) die Nachricht gerichtet ist
ms_debugging = debugging; // an wen (Plural) die Nachricht gerichtet ist
// setze den Host
Eigenschaften props = new Properties();
props.put("mail.smtp.host", ms_strSMTPHost);
// einige Eigenschaften erstellen und die Standardsitzung abrufen
Sitzung session = Session.getDefaultInstance(props, null);
session.setDebug(ms_debugging);
versuchen {
//Erstelle eine Nachricht
ms_msg = new MimeMessage(session);
// setze das von
InternetAddress from = new InternetAddress(strFrom);
ms_msg.setFrom(from);
// setze das auf
InternetAddress[] address = new InternetAddress[astrTo.length];
for (int i = 0; i astrTo.length; ++i)
{
Adresse[i] = neue InternetAdresse(astrTo[i]);
}
ms_msg.setRecipients(Message.RecipientType.TO, Adresse);
// Legen Sie die BCC-Empfänger fest
if (astrBCC != null)
{
Adresse = neue InternetAdresse[astrBCC.länge];
for (int i = 0; i astrBCC.length; ++i)
{
eh.dbg("astrBCC[" + i + "] ist: '" + astrBCC[i] + "'");
Adresse[i] = neue InternetAdresse(astrBCC[i]);
}
ms_msg.setRecipients(Message.RecipientType.BCC, Adresse);
}
// Betreff festlegen
ms_msg.setSubject(strSubject);
// Richten Sie den String-Puffer ein, der die Nachricht enthält
ms_strbufMsg = new StringBuffer();
} Catch (MessagingException mex) {
mex.printStackTrace(System.err);
} Catch (Ausnahme ex) {
ex.printStackTrace(System.err);
}
}
public void ms_add(String strText)
{
ms_strbufMsg.append(strText);
}
public void ms_send()
{
versuchen {
// Den Inhalt als Klartext festlegen
ms_msg.setContent(new String(ms_strbufMsg), "text/plain");
// und weg
Transport.send(ms_msg);
} Catch (Ausnahme ex) {
System.out.println("Abgefangene Ausnahme in MailSender.ms_send: " + ex);
}
}