Ich habe heute über Javamail gelernt. Für die Bequemlichkeit der zukünftigen Verwendung schrieb ich selbst ein Stück Code und tippte ihn in ein JAR -Paket, um die zukünftige Verwendung zu bequem zu machen. hehe
Die folgenden drei Codes sind mein Code. Da ich nicht weiß, wie ich das JAR -Paket auf Javaeye hochladen soll, gehen Freunde zurück und schaffen es selbst.
Mein Code hat drei Klassen:
Die erste Klasse: MailSenderInfo.java
Die Codekopie lautet wie folgt:
Paket com.util.mail;
/**
* Grundlegende Informationen, die zum Senden von E -Mails erforderlich sind
*/
Import Java.util.Properties;
öffentliche Klasse MailSenderInfo {
// IP und Port des Servers, der die E -Mail sendet
private String mailserverhost;
private String mailserverport = "25";
// die Adresse des Absenders der E -Mail
private Zeichenfolge von Address;
// die Adresse des E -Mail -Empfängers
private String Toaddress;
// Melden Sie sich beim Benutzernamen und Passwort des E -Mail -Sendenservers an
privater String -Benutzername;
privates Zeichenfolgenkennwort;
// ist eine Authentifizierung erforderlich
private boolean validate = false;
// E -Mail -Betreff
privates String -Betreff;
// Der Textinhalt der E -Mail
private String -Inhalte;
// Dateiname des E -Mail -Anhangs
private Zeichenfolge [] Attemfilenamen;
/**
* Abrufen Sie E -Mail -Sitzungsattribute ab
*/
öffentliche Eigenschaften getProperties () {
Eigenschaften p = neue Eigenschaften ();
P.put ("mail.smtp.host", this.mailserverhost);
P.put ("mail.smtp.port", this.mailserverport);
P.put ("mail.smtp.auth", validate? "true": "false");
Rückkehr p;
}
public String getmailserverhost () {
mailserverhost zurückgeben;
}
public void setmailserverhost (String mailserverhost) {
this.mailserverhost = mailserverhost;
}
public String getmailserverport () {
mailserverport zurückgeben;
}
public void setmailserverport (String mailserverport) {
this.mailserverport = mailserverport;
}
public boolean isvalidate () {
Return Validate;
}
public void setvalidate (boolean validate) {
this.validate = validate;
}
public String [] getattachFileNames () {
Return AttachFileNames;
}
public void setattachFileNames (String [] Dateinamen) {
this.attachFileNames = Dateinamen;
}
public String Getfromaddress () {
Kehre von Address zurück;
}
public void setfromaddress (String fromAddress) {
this.fromaddress = fromAddress;
}
public String getPassword () {
Passwort zurückgeben;
}
public void setPassword (String -Passwort) {
this.Password = Passwort;
}
public String Gettoaddress () {
Return Toaddress;
}
public void settoaddress (String Toaddress) {
this.toaddress = Toaddress;
}
public String getUnername () {
Rückgabe -Benutzername;
}
public void setUnername (String -Benutzername) {
this.username = userername;
}
public String getubject () {
Rückgabe -Betreff;
}
public void setSubject (String -Subjekt) {
this.subject = Subjekt;
}
public String getContent () {
Inhalt zurückgeben;
}
public void setContent (String textContent) {
this.content = textContent;
}
}
Die zweite Klasse: SimpleMailSender.java
Die Codekopie lautet wie folgt:
Paket com.util.mail;
import Java.util.date;
Import Java.util.Properties;
import Javax.mail.address;
Javax.mail.bodypart importieren;
Javax.Mail.Message importieren;
Javax.Mail.MessagingException importieren;
import Javax.mail.multipart;
Javax.Mail.Session importieren;
importieren javax.mail.transport;
import javax.mail.internet.interneTadDress;
import javax.mail.internet.mimebodypart;
importieren javax.mail.internet.mimemessage;
import javax.mail.internet.mimemultipart;
/**
* Einfacher Mail (Mail ohne Anhänge) Absender
*/
öffentliche Klasse SimpleMailSender {
/**
* Senden Sie E -Mails im Textformat
* @param mailinfo Informationen zur Sendung der E -Mail
*/
public boolean sendTextmail (MailSenderInfo MailInfo) {
// Bestimmen Sie, ob Identitätsauthentifizierung erforderlich ist
MyAuthenticator Authenticator = NULL;
Properties pro = MailInfo.getProperties ();
if (mailinfo.isvalidate ()) {
// Wenn die Identitätsauthentifizierung erforderlich ist, erstellen Sie einen Kennwortauthentikator
authenticator = new myAuthenticator (mailInfo.getUnername (), mailinfo.getPassword ());
}
// Erstellen Sie eine Sitzung, um E -Mails basierend auf den E -Mail -Sitzungseigenschaften und dem Passwort Validator zu senden
Sitzung sendmailSession = session.getDefaultInstance (Pro, Authenticator);
versuchen {
// Erstellen Sie eine E -Mail -Nachricht basierend auf der Sitzung
Message MailMessage = New Mimemessage (sendmailSession);
// Erstellen Sie die E -Mail -Absender -Adresse
Adresse von = new InternetAddress (MailInfo.getfromaddress ());
// Setzen Sie den Absender der E -Mail -Nachricht
MailMessage.Setfrom (von);
// Erstellen Sie die Empfängeradresse der E -Mail und setzen Sie sie auf die E -Mail -Nachricht ein
Adresse an = new InternetAddress (mailinfo.gettoaddress ());
MailMessage.setRecipient (message.RecipientType.to, to);
// Legen Sie das Thema der E -Mail -Nachricht fest
MailMessage.Setsubject (mailInfo.getSubject ());
// Legen Sie die Zeit für das Senden von E -Mail -Nachrichten fest
MailMessage.SetSentDate (neues Datum ());
// Legen Sie den Hauptinhalt der E -Mail -Nachricht fest
String mailContent = mailInfo.getContent ();
MailMessage.SetText (MailContent);
// Mail senden
Transport.Send (MailMessage);
zurückkehren;
} catch (MessagingException ex) {
ex.printstacktrace ();
}
false zurückgeben;
}
/**
* Senden Sie E -Mails im HTML -Format
* @Param MailInfo Mail -Informationen zugesandt werden
*/
public static boolean sendhtmlmail (mailsenderInfo mailinfo) {
// Bestimmen Sie, ob Identitätsauthentifizierung erforderlich ist
MyAuthenticator Authenticator = NULL;
Properties pro = MailInfo.getProperties ();
// Wenn die Identitätsauthentifizierung erforderlich ist, erstellen Sie einen Kennwortauthentikator
if (mailinfo.isvalidate ()) {
authenticator = new myAuthenticator (mailInfo.getUnername (), mailinfo.getPassword ());
}
// Erstellen Sie eine Sitzung, um E -Mails basierend auf den E -Mail -Sitzungseigenschaften und dem Passwort Validator zu senden
Sitzung sendmailSession = session.getDefaultInstance (Pro, Authenticator);
versuchen {
// Erstellen Sie eine E -Mail -Nachricht basierend auf der Sitzung
Message MailMessage = New Mimemessage (sendmailSession);
// Erstellen Sie die E -Mail -Absender -Adresse
Adresse von = new InternetAddress (MailInfo.getfromaddress ());
// Setzen Sie den Absender der E -Mail -Nachricht
MailMessage.Setfrom (von);
// Erstellen Sie die Empfängeradresse der E -Mail und setzen Sie sie auf die E -Mail -Nachricht ein
Adresse an = new InternetAddress (mailinfo.gettoaddress ());
// message.RecipientType.TO -Attribut zeigt an, dass der Typ des Empfängers an ist
MailMessage.setRecipient (message.RecipientType.to, to);
// Legen Sie das Thema der E -Mail -Nachricht fest
MailMessage.Setsubject (mailInfo.getSubject ());
// Legen Sie die Zeit für das Senden von E -Mail -Nachrichten fest
MailMessage.SetSentDate (neues Datum ());
// minimultiPart -Klasse ist eine Containerklasse, die Objekte vom Typ mimebodypart enthält
Multipart MainPart = new MimemultiPart ();
// Erstellen Sie einen Mimebodypart, der HTML -Inhalt enthält
Bodypart html = neu mimebodypart ();
// HTML -Inhalte festlegen
html.setContent (mailInfo.getContent (), "text/html; charSet = utf-8");
MainPart.Addbodypart (HTML);
// minimultiPart -Objekt an mailende Inhalte festlegen
MailMessage.SetContent (MainPart);
// Mail senden
Transport.Send (MailMessage);
zurückkehren;
} catch (MessagingException ex) {
ex.printstacktrace ();
}
false zurückgeben;
}
}
Die dritte Kategorie: myauthenticator.java
Die Codekopie lautet wie folgt:
Paket com.util.mail;
Javax.mail importieren.*;
öffentliche Klasse MyAuthenticator erweitert Authenticator {
String username = null;
String password = null;
public myAuthenticator () {
}
public myAuthenticator (String -Benutzername, String Passwort) {
this.username = userername;
this.Password = Passwort;
}
geschützte passwordauthentication getPasswordAuthentication () {
Neue PasswordAuthentication (Benutzername, Passwort) zurückgeben;
}
}
Das Folgende ist der Code mit den oben genannten drei Klassen:
Die Codekopie lautet wie folgt:
public static void main (String [] args) {
// Diese Klasse legt hauptsächlich E -Mails ein
MailSenderInfo MailInfo = new MailSenderInfo ();
MailInfo.setmailServerhost ("SMTP.163.com");
MailInfo.SetmailServerport ("25");
MailInfo.setValidate (true);
mailinfo.setusername ("[email protected]");
MailInfo.SetPassword ("*********); // Ihr E -Mail -Passwort
mailinfo.setfromaddress ("[email protected]");
mailinfo.settoaddress ("[email protected]");
mailInfo.setsubject ("mailbox -title");
MailInfo.SetContent ("Mailbox -Inhalt setzen");
// Diese Klasse sendet hauptsächlich E -Mails
SimpleMailSender SMS = new SimplemailSender ();
SMS.SendTextMail (MailInfo); // Textformat senden
sms.sendhtmlmail (MailInfo); // HTML -Format senden
}
Lassen Sie mich schließlich Ihnen etwas Aufmerksamkeit schenken:
1. Mit diesem Code können Sie die E -Mail -Sendungsfunktion Ihrer Javamail ausfüllen. Alle drei Kategorien sind unverzichtbar.
2. Ich habe das Paket com.util.mail verwendet, um diese drei Klassen zu verpacken.
3. Verwenden Sie nicht die E -Mail -Adresse, die Sie gerade registriert haben, um E -Mails im Programm zu senden. Weil du es nicht versenden kannst. Die gerade registrierte E -Mail -Adresse gibt Ihnen keine solchen Berechtigungen, was bedeutet, dass Sie die Überprüfung nicht bestehen können. Sie müssen die häufig verwendete E -Mail -Adresse verwenden, und es dauert lange.
V. Wenn Sie den 163SMTP -Server verwenden, müssen Sie die E -Mail -Adresse 163 verwenden, um die E -Mail -Adresse zu senden.
5. Es gibt viele Erklärungen im Internet zu Javamail -Überprüfungsfehlern, aber ich sehe nur einen. Es ist meine dritte Kategorie. Solange Sie den gesamten Code kopieren, wird es kein Problem geben.