import java.io.*;
import java.util.*;
import javax.activation.*;
import javax.mail.*;
import javax.mail.internet.*;
public class MailUtils
{
public static void main(String[] args) {
Session session;
String modus;
String user;
String pw;
user = "[EMAIL]VN_NN@web.de[/EMAIL]";
pw = "password";
modus = "SCHREIBEN";
if (modus=="LESEN") {
System.out.print("Lesen beginn");
session = getMailSession(user,pw);
session.setDebug(true);
Folder folder = null;
try {folder = openPop3InboxReadOnly(session);} catch (MessagingException e1) {}
try {printAllTextPlainMessages(folder);} catch (MessagingException | IOException e2) {}
try {closeInbox(folder);} catch (MessagingException e3) {}
System.out.print("Lesen ende");
}
if (modus=="SCHREIBEN") {
System.out.print("Schreiben beginn");
session = getMailSession(user,pw);
session.setDebug(true);
try {
postMail(session, "[EMAIL]an@web.de[/EMAIL]" ,"Kurze Info", "Hab's verstanden!" );
} catch (MessagingException e) {
e.printStackTrace();
}
System.out.print("Schreiben ende");
}
}
public static void postMail( Session session, String recipient,
String subject, String message )
throws MessagingException
{
Message msg = new MimeMessage( session );
InternetAddress addressTo = new InternetAddress( recipient );
msg.setRecipient( Message.RecipientType.TO, addressTo );
msg.setSubject( subject );
msg.setContent( message, "text/plain" );
Transport.send( msg );
}
public static void printAllTextPlainMessages( Folder folder )
throws MessagingException, IOException
{
for ( Message m : folder.getMessages() )
{
System.out.println( "\nNachricht:" );
System.out.println( "Von: " + Arrays.toString(m.getFrom()) );
System.out.println( "Betreff: " + m.getSubject() );
System.out.println( "Gesendet am: " + m.getSentDate() );
System.out.println( "Content-Type: " +
new ContentType( m.getContentType() ) );
if ( m.isMimeType( "text/plain" ) )
System.out.println( m.getContent() );
}
}
public static Folder openPop3InboxReadOnly( Session session )
throws MessagingException
{
Store store = session.getStore( "pop3" );
store.connect();
Folder folder = store.getFolder( "INBOX" );
folder.open( Folder.READ_ONLY );
return folder;
}
public static void closeInbox( Folder folder ) throws MessagingException
{
folder.close( false );
folder.getStore().close();
}
public static Session getMailSession( String user, String pass )
{
final Properties props = new Properties();
props.setProperty( "mail.pop3.host", "pop3.web.de" );
props.setProperty( "mail.pop3.user", user );
props.setProperty( "mail.pop3.password", pass );
props.setProperty( "mail.pop3.port", "995" );
props.setProperty( "mail.pop3.auth", "true" );
props.setProperty( "mail.pop3.socketFactory.class",
"javax.net.ssl.SSLSocketFactory" );
props.setProperty( "mail.smtp.host", "smtp.web.de" );
props.setProperty( "mail.smtp.auth", "true" );
props.setProperty( "mail.smtp.port", "587" );
props.setProperty( "mail.smtp.socketFactory.port", "587" );
props.setProperty( "mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory" );
props.setProperty( "mail.smtp.socketFactory.fallback", "false" );
return Session.getInstance( props, new javax.mail.Authenticator() {
@Override protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication( props.getProperty( "mail.pop3.user" ),
props.getProperty( "mail.pop3.password" ) );
}
} );
}
}