Die JavaMail API gibt es hier
Code:
import java.io.File; import java.util.Date; import java.util.List; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; /** * Klasse zum versenden einer eMail mit/ohne Attachment */ public class SendEMail { private String server; private String username; private String passwort; private String port="25"; private boolean authentication=true; private String error=""; /** * Konstruktor */ public SendEMail() { } public boolean isAuthentication() { return authentication; } public void setAuthentication(boolean authentication) { this.authentication=authentication; } public String getPasswort() { return passwort; } public void setPasswort(String passwort) { this.passwort=passwort; } public String getPort() { return port; } public void setPort(String port) { this.port=port; } public String getServer() { return server; } public void setServer(String server) { this.server=server; } public String getUsername() { return username; } public void setUsername(String username) { this.username=username; } public String getError() { return error; } /** * * @param absender eMailadresse des Absenders * @param recipients eMailadressen des Empfänger getrennt durch , oder ; * @param subject Subjekt (Betreffzeile) * @param body Text der Mail * @return */ public boolean SendeMail(String absender,String recipients,String subject,String body) { return SendeMail(absender,recipients,subject,body,null); } /** * * @param absender eMailadresse des Absenders * @param recipients eMailadressen des Empfänger getrennt durch , oder ; * @param subject Subjekt (Betreffzeile) * @param body Text der Mail * @param dateien Liste der Anhänge * @return */ public boolean SendeMail(String absender,String recipients,String subject,String body,List<File> dateien) { try { error=""; Properties prop=System.getProperties(); prop.put("mail.transport.protocol","smtp"); prop.put("mail.smtp.auth",String.valueOf(authentic ation)); prop.put("mail.smtp.host",server); prop.put("mail.smtp.port",port); prop.put("mail.user",username); prop.put("mail.password",passwort); //prop.put("mail.debug","true"); javax.mail.Session ses1; if(authentication) { javax.mail.Authenticator auth=new javax.mail.Authenticator() { @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username,passwort); } }; ses1=Session.getInstance(prop,auth); } else { ses1=Session.getInstance(prop); } MimeMessage msg=new MimeMessage(ses1); msg.setFrom(new InternetAddress(absender)); String[] rec=recipients.split("[;,]"); for(String adr:rec) { msg.addRecipients(Message.RecipientType.TO,adr); } msg.setSubject(subject); Multipart multipart=new MimeMultipart(); BodyPart messagepart=new MimeBodyPart(); messagepart.setText(body); multipart.addBodyPart(messagepart); if(dateien!=null) { for(File datei:dateien) { if(datei.exists()) { MimeBodyPart attachmentpart=new MimeBodyPart(); FileDataSource fd=new FileDataSource(datei) { @Override public String getContentType() { return "application/octet-stream"; } }; attachmentpart.setDataHandler(new DataHandler(fd)); attachmentpart.setFileName(fd.getName()); multipart.addBodyPart(attachmentpart); } } } msg.setContent(multipart); msg.setSentDate(new Date()); Transport.send(msg); } catch(MessagingException e) { error=e.getMessage(); return false; } return true; } }
Comment