English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Senden Sie E-Mails mit Java-Anwendungen-mail ist sehr einfach, aber Sie sollten zunächst JavaMail API und Java Activation Framework (JAF) auf Ihrem Computer installieren.
Sie können die neueste Version von Java von der Java-Website herunterladen JavaMail,Öffnen Sie die rechte Seite der Webseite und Sie finden Downloads Klicken Sie auf den Link, um ihn herunterzuladen.
Sie können die neueste Version von Java von der Java-Website herunterladen JAF (Version 1.1.1).
Sie können auch die Download-Links auf dieser Seite verwenden:
Laden Sie diese Dateien herunter und entpacken Sie sie. In dem neu erstellten obersten Verzeichnis finden Sie einige jar-Dateien der beiden Anwendungen. Sie müssen mail.jar und activation.jar Fügen Sie die Datei Ihrem CLASSPATH hinzu.
Wenn Sie einen Drittanbieter-Mailserver wie den SMTP-Server von QQ verwenden, können Sie am Ende des Artikels ein vollständiges Beispiel zur Benutzerauthentifizierung finden.
Nachstehend ist ein Beispiel für die Sendung einer einfachen E-Mail-mail的实例。假设你的本地主机已经连接到网络。
// Dateiname SendEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args) { // Empfänger E-Mail-Adresse String to = "[email protected]"; // Absender E-Mail-Adresse String from = "[email protected]"; // 指定发送邮件的主机为 localhost String host = "localhost"; // Erhalten Sie die Systemeigenschaften Properties properties = System.getProperties(); // Einstellen Sie den E-Mail-Server properties.setProperty("mail.smtp.host", host); // Erhalten Sie das Standard-Session-Objekt Session session = Session.getDefaultInstance(properties); try{ // Erstellen Sie das Standard-MimeMessage-Objekt MimeMessage message = new MimeMessage(session); // Set From: Kopfzeilenfeld message.setFrom(new InternetAddress(from)); // Set To: Kopfzeilenfeld message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: Kopfzeilenfeld message.setSubject("This is the Subject Line!"); // Nachrichtentext setzen message.setText("This is actual message"); // Nachricht senden Transport.send(message); System.out.println("Sent message successfully...."); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Kompilieren und führen Sie dieses Programm aus, um eine einfache E-Mail zu senden-mail:
$ java SendEmail Sent message successfully....
Wenn Sie eine E-Mail senden möchten,-Wenn Sie mehrere Empfänger an eine E-Mail senden möchten, verwenden Sie die folgende Methode, um mehrere Empfänger-IDs zu spezifizieren:
void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
Nachstehend ist eine Beschreibung der Parameter:
type:Hier muss es auf TO, CC oder BCC eingestellt werden, wobei CC für Kopie und BCC für geheimen Kopie steht. Beispiel: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) { // Empfänger E-Mail-Adresse String to = "[email protected]"; // Absender E-Mail-Adresse String from = "[email protected]"; // 指定发送邮件的主机为 localhost String host = "localhost"; // Erhalten Sie die Systemeigenschaften Properties properties = System.getProperties(); // Einstellen Sie den E-Mail-Server properties.setProperty("mail.smtp.host", host); // 获取默认的 Session 对象。 Session session = Session.getDefaultInstance(properties); try{ // 创建默认的 MimeMessage 对象。 MimeMessage message = new MimeMessage(session); // Set From: Kopfzeilenfeld message.setFrom(new InternetAddress(from)); // Set To: Kopfzeilenfeld message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: 头字段 message.setSubject("This is the Subject Line!"); // 发送 HTML 消息, 可以插入html标签 message.setContent("<h1>This is actual message</h1>", "text/html" ); // Nachricht senden Transport.send(message); System.out.println("Sent message successfully...."); }catch (MessagingException mex) { mex.printStackTrace(); } } }
编译并运行此程序来发送HTML e-mail:
$ java SendHTMLEmail Sent message successfully....
下面是一个发送带有附件的 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) { // Empfänger E-Mail-Adresse String to = "[email protected]"; // Absender E-Mail-Adresse String from = "[email protected]"; // 指定发送邮件的主机为 localhost String host = "localhost"; // Erhalten Sie die Systemeigenschaften Properties properties = System.getProperties(); // Einstellen Sie den E-Mail-Server properties.setProperty("mail.smtp.host", host); // 获取默认的 Session 对象。 Session session = Session.getDefaultInstance(properties); try{ // 创建默认的 MimeMessage 对象。 MimeMessage message = new MimeMessage(session); // Set From: Kopfzeilenfeld message.setFrom(new InternetAddress(from)); // Set To: Kopfzeilenfeld message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: 头字段 message.setSubject("This is the Subject Line!"); // 创建消息部分 BodyPart messageBodyPart = new MimeBodyPart(); // Nachricht messageBodyPart.setText("This is message body"); // Mehrere Nachrichten erstellen Multipart multipart = new MimeMultipart(); // Textnachrichteneinstellungen vornehmen multipart.addBodyPart(messageBodyPart); // Anhangsteil messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // Gesamte Nachricht senden message.setContent(multipart); // Nachricht senden Transport.send(message); System.out.println("Sent message successfully...."); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Kompilieren und führen Sie Ihr Programm aus, um eine E-Mail mit Anhang zu senden.
$ java SendFileEmail Sent message successfully....
Wenn Sie Benutzernamen und Passwörter an e liefern müssen-Um die Benutzer-authentifizierung durch den mail-Server zu erreichen, können Sie die folgenden Einstellungen vornehmen:
props.put("mail.smtp.auth", "true"); props.setProperty("mail.user", "myuser"); props.setProperty("mail.password", "mypwd");
e-Andere Sendemechanismen von mail sind mit den oben genannten identisch.
Dieses Beispiel verwendet den QQ-E-Mail-Server als Beispiel, Sie müssen im Login-Bereich der QQ-E-Mail-Backend "Einstellungen" => "Konto" die POP aktivieren3/SMTP-Dienst, wie im folgenden Bild gezeigt:
QQ-E-Mail kann über die Generierung eines Autorisierungs-Codes zum Festlegen des Passworts eingerichtet werden:
Java-Code folgt:
// Beispiel zur E-Mail-Sendung mit Benutzernamen und Passwort //Dateiname SendEmail2.java //Dieses Beispiel verwendet die QQ-E-Mail als Beispiel, Sie müssen im QQ-Backend die Einstellungen vornehmen 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) { // Empfänger E-Mail-Adresse String to = "[email protected]"; // Absender E-Mail-Adresse String from = "[email protected]"; // Bestimmen Sie den Hauptrechner für die Sendung von E-Mails als smtp.qq.com String host = "smtp.qq.com"; //QQ E-Mail-Server // Erhalten Sie die Systemeigenschaften Properties properties = System.getProperties(); // Einstellen Sie den E-Mail-Server properties.setProperty("mail.smtp.host", host); properties.put("mail.smtp.auth", "true"); // Erhalten Sie das Standard-Session-Objekt Session session = Session.getDefaultInstance(properties, new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("[email protected]", "qq E-Mail-Berechtigungscode"); //Absender E-Mail-Benutzername, Autorisierungscode } }); try{ // Erstellen Sie das Standard-MimeMessage-Objekt MimeMessage message = new MimeMessage(session); // Set From: Kopfzeilenfeld message.setFrom(new InternetAddress(from)); // Set To: Kopfzeilenfeld message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Set Subject: Kopfzeilenfeld message.setSubject("This is the Subject Line!"); // Nachrichtentext setzen message.setText("This is actual message"); // Nachricht senden Transport.send(message); System.out.println("Message successfully sent....from oldtoolbag.com)); }catch (MessagingException mex) { mex.printStackTrace(); } } }