Das Beispiel dieses Artikels beschreibt die Implementierungsmethode zum Senden von E-Mails mit Anhängen per Javamail in Java. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:
Wie der Name schon sagt, stellt JavaMail Entwicklern Programmierschnittstellen für die E-Mail-Verarbeitung zur Verfügung. Es handelt sich um eine von Sun veröffentlichte API zur Verarbeitung von E-Mails. Es kann problemlos einige gängige E-Mail-Übertragungen durchführen. JavaMail ist ein optionales Paket. Wenn Sie es also verwenden müssen, müssen Sie es zuerst von der offiziellen Java-Website herunterladen. Die neueste Version ist JavaMail 1.5.0. Schauen wir uns ein Beispiel für das Versenden von E-Mails mit Anhängen über Javamail an.
mail.java-Code:
Kopieren Sie den Code wie folgt: package mail;
java.util.* importieren;
java.io.* importieren;
javax.mail importieren.* ;
javax.mail.internet.* importieren;
import javax.activation.* ;
öffentliche Klasse Mail {
//Absender, Empfänger, SMTP-Server, Benutzername, Passwort, Betreff, Inhalt usw. definieren.
privater String displayName;
privater String an;
privater String von;
privater String smtpServer;
privater String-Benutzername;
privates String-Passwort;
privater String-Betreff;
privater String-Inhalt;
private boolean ifAuth; //Ob der Server eine Identitätsauthentifizierung erfordert
privater String filename="";
private Vector file = new Vector(); //Eine Sammlung von Dateinamen, die zum Speichern von Anhängen verwendet werden
/**
* Legen Sie die SMTP-Serveradresse fest
*/
public void setSmtpServer(String smtpServer){
this.smtpServer=smtpServer;
}
/**
* Legen Sie die Absenderadresse fest
*/
public void setFrom(String from){
this.from=von;
}
/**
* Legen Sie den angezeigten Namen fest
*/
public void setDisplayName(String displayName){
this.displayName=displayName;
}
/**
*Legen Sie fest, ob der Server eine Identitätsauthentifizierung erfordert
*/
public void setIfAuth(boolean ifAuth){
this.ifAuth=ifAuth;
}
/**
*E-Mail-Benutzernamen festlegen
*/
public void setUserName(String username){
this.username=Benutzername;
}
/**
* E-Mail-Passwort festlegen
*/
public void setPassword(String-Passwort){
this.password=Passwort;
}
/**
* Empfänger festlegen
*/
public void setTo(String to){
this.to=to;
}
/**
* Thema festlegen
*/
public void setSubject(String subject){
this.subject=subject;
}
/**
* Legen Sie den Hauptinhalt fest
*/
public void setContent(String content){
this.content=content;
}
/**
* Diese Methode wird zum Sammeln von Anhangsnamen verwendet
*/
public void addAttachfile(String fname){
file.addElement(fname);
}
öffentliche Mail(){
}
/**
* Initialisieren Sie die SMTP-Serveradresse, die E-Mail-Adresse des Absenders, den Benutzernamen, das Passwort, den Empfänger, den Betreff und den Inhalt
*/
public Mail(String smtpServer,String from,String displayName,String username,String password,String to,String subject,String content){
this.smtpServer=smtpServer;
this.from=von;
this.displayName=displayName;
this.ifAuth=true;
this.username=Benutzername;
this.password=Passwort;
this.to=to;
this.subject=subject;
this.content=content;
}
/**
* Initialisieren Sie die SMTP-Serveradresse, die E-Mail-Adresse des Absenders, den Empfänger, den Betreff und den Inhalt
*/
public Mail(String smtpServer,String from,String displayName,String to,String subject,String content){
this.smtpServer=smtpServer;
this.from=von;
this.displayName=displayName;
this.ifAuth=false;
this.to=to;
this.subject=subject;
this.content=content;
}
/**
* E-Mail senden
*/
öffentliche HashMap send(){
HashMap map=new HashMap();
map.put("state", "success");
String message="E-Mail erfolgreich gesendet!";
Sitzung session=null;
Eigenschaften props = System.getProperties();
props.put("mail.smtp.host", smtpServer);
if(ifAuth){ //Der Server erfordert eine Identitätsauthentifizierung
props.put("mail.smtp.auth","true");
SmtpAuth smtpAuth=new SmtpAuth(username,password);
session=Session.getDefaultInstance(props, smtpAuth);
}anders{
props.put("mail.smtp.auth","false");
session=Session.getDefaultInstance(props, null);
}
session.setDebug(true);
Transport trans = null;
versuchen {
Message msg = new MimeMessage(session);
versuchen{
Adresse from_address = new InternetAddress(from, displayName);
msg.setFrom(from_address);
}catch(java.io.UnsupportedEncodingException e){
e.printStackTrace();
}
InternetAddress[] address={new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO,address);
msg.setSubject(subject);
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(content.toString(), "text/html;charset=gb2312");
mp.addBodyPart(mbp);
if(!file.isEmpty()){//Es gibt Anhänge
Aufzählung efile=file.elements();
while(efile.hasMoreElements()){
mbp=new MimeBodyPart();
filename=efile.nextElement().toString(); //Wählen Sie jeden Anhangsnamen aus
FileDataSource fds=new FileDataSource(filename); //Datenquelle abrufen
mbp.setDataHandler(new DataHandler(fds)); //Den Anhang selbst abrufen und mit dem BodyPart zusammenführen
mbp.setFileName(fds.getName()); //Den Dateinamen abrufen und den BodyPart eingeben
mp.addBodyPart(mbp);
}
file.removeAllElements();
}
msg.setContent(mp); //Multipart zur Nachricht hinzugefügt
msg.setSentDate(new Date()); //Legen Sie das Sendedatum des Briefkopfes fest
//Brief senden
msg.saveChanges();
trans = session.getTransport("smtp");
trans.connect(smtpServer, Benutzername, Passwort);
trans.sendMessage(msg, msg.getAllRecipients());
trans.close();
}catch(AuthenticationFailedException e){
map.put("state", "failed");
message="E-Mail konnte nicht gesendet werden! Fehlergrund:/n"+"Authentifizierungsfehler!";
e.printStackTrace();
}catch (MessagingException e) {
message="Fehler beim Senden der E-Mail! Fehlergrund:/n"+e.getMessage();
map.put("state", "failed");
e.printStackTrace();
Ausnahme ex = null;
if ((ex = e.getNextException()) != null) {
System.out.println(ex.toString());
ex.printStackTrace();
}
}
//System.out.println("/nprompt message:"+message);
map.put("Nachricht", Nachricht);
Rückkehrkarte;
}
}
SmtpAuth.java-Code:
Kopieren Sie den Code wie folgt: package mail;
Die öffentliche Klasse SmtpAuth erweitert javax.mail.Authenticator {
privater String Benutzername, Passwort;
public SmtpAuth(String Benutzername,String Passwort){
this.username = Benutzername;
this.password = Passwort;
}
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,password);
}
}
Das Problem ist, dass alle an 163 gesendeten E-Mails ein Anhangssymbol haben. Unabhängig davon, ob Anhänge gesendet werden oder nicht, können interessierte Freunde dies verbessern und verbessern.
Ich hoffe, dass dieser Artikel für die Java-Programmierung aller hilfreich sein wird.