JavaMail - Anhang hochladen vor senden der Nachricht

GUI-Programmer

Top Contributor
Ich weis bereits, wie man mit JavaMail Anhänge mit einer Mail versendet. Jedoch, da dies, v.a. bei einer schlechten Internetleitung, sehr lange dauern kann, wenn man mehrere Dateien angehängt hat, möchte ich die Anhänge schon vorher hochladen - damit der Vorgang des Sendens nicht so ewig dauert. Ist dies generell mit JavaMail möglich, wenn ja, wie?

Hier noch ein bischen Code, wie ich das bisher gemacht habe:
Java:
public void login(final String username, final String password) throws Exception {
		MailTool.this.username = username;
		MailTool.this.password = password;
		
		Properties props1=new Properties();
		props1.put("mail.smtp.port", "587");
        props1.put("mail.smtp.auth", "true");
        props1.put("mail.smtp.starttls.enable", "true");
        session1 = Session.getInstance(props1);
        transport = session1.getTransport("smtp");
		transport.connect("smtp.googlemail.com", username, password);
		
		Properties props2 = System.getProperties();
		props2.setProperty("mail.store.protocol", "imaps");
		props2.setProperty("mail.imaps.partialfetch", "false");
    	props2.setProperty("mail.imap.host", "imap.gmail.com");
    	props2.setProperty("mail.imap.port", "993");
    	props2.setProperty("mail.imap.connectiontimeout", "5000");
    	props2.setProperty("mail.imap.timeout", "5000");
    	Session session2 = Session.getDefaultInstance(props2, null);
    	store = session2.getStore("imaps");
    	store.connect("imap.gmail.com", username, password);
    	folder = store.getFolder("INBOX");
    	folder.open(Folder.READ_WRITE);
}

public void sendMail(String recipientAddresses, String subject, String mailText, ArrayList<File> filelist) throws Exception {
		login(username, password);
    	Address[] addresses = InternetAddress.parse(recipientAddresses);
		Message message = new MimeMessage(session1);
        message.setFrom(new InternetAddress(username));
        message.setRecipients(Message.RecipientType.TO, addresses);
        message.setSubject(subject);
        // create the message part 
        Multipart multipart = new MimeMultipart();
        MimeBodyPart textBodyPart = new MimeBodyPart();
        textBodyPart.setText(mailText);
        multipart.addBodyPart(textBodyPart);
        for(int i=0; i<filelist.size(); i++) {
        	MimeBodyPart attachementBodyPart = new MimeBodyPart();
            DataSource source = new FileDataSource(filelist.get(i));
            attachementBodyPart.setDataHandler(new DataHandler(source));
            attachementBodyPart.setFileName(filelist.get(i).getName());
            multipart.addBodyPart(attachementBodyPart);
        }
        message.setContent(multipart);
        
        transport.sendMessage(message, addresses);
        transport.close();
}

Hoffentlich findet jemand ne Lösung!!!

Danke für eure Beiträge.
 

GUI-Programmer

Top Contributor
Habe jetzt schon ne ganze Zeit lang gegooglet und nichts passendes gefunden. Vielleicht muss man ja bereits Verbinden etwas so einstellen, dass es funktioniert also so was ähnliches:
Java:
props1.put("mail.smtp.directupload.enabled", "true");

Package com.sun.mail.smtp
Wenn es das gäbe!
 
Zuletzt bearbeitet:

thE_29

Top Contributor
Hab zwar jetzt nicht soooviel gemacht, aber kann mir kaum vorstellen, dass es da was gibt..

Das müsste im RFC protokolliert/standardisiert sein.. Nur weil zB gmx, sowas anbietet, muss das ja kein Standard sein und wenn es das nicht ist, wird es von JavaMail nicht implementiert sein..

Es müsste halt sowas wie ein storeTemp, etc. geben was dir dann ne ID zurückgibt und mit der schickt man dann das Mail... Nur ob es sowas gibt..
 

Andi_CH

Top Contributor
Räusper - habt ihr zwei überhaupt eine Ahnung von Mail? :D

Wohin willst du denn etwas hochladen? Ich verstehe deine Frage echt nicht - du bastelst lokal auf dem Rechner eine Mail zusammen und sendest die dann - senden ist das was du unter "hochladen" verstehst - die Daten werden von deinem PC dem Mailserver übergeben.

Wenn du Mails mit thunderbird, Outlook oder ähnlichem versendest, läuft das genau so - da kannt du auch nicht vorher was hochladen.

gmx und Konsorten sind etwas ganz anderes. Da verwendest du keinen Mailclient sondern ein Webinterface und der eigentliche Mailclient läuft auf dem Server z.B. bei gmx.

Ich weiss auch wirklich nicht was du wo einsparen willst - die Zeit um etwas hochalden ist exakt gleich lang - ob das nun vorher oder nachher geschieht.

Also kurz zusammengefasst - das was du willst geht nicht ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand JavaMail ohne Anhang senden Allgemeine Java-Themen 4
W JavaMail mit OAuth2 an O365 Allgemeine Java-Themen 2
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
X Fragen zur Javamail API und Gmail Allgemeine Java-Themen 4
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
V JavaMail (die 2.) Allgemeine Java-Themen 5
V Java8 und JavaMail Allgemeine Java-Themen 27
U Javamail Allgemeine Java-Themen 12
S JavaMail - MailSubject,MailFrom,MailDate in String Array speichern NullPointerException Allgemeine Java-Themen 2
L ClassCastException (JavaMail API) Allgemeine Java-Themen 3
M JavaMail Spam-Ordner Allgemeine Java-Themen 2
J javamail --- UnsupportedDataTypeException Allgemeine Java-Themen 6
N [GWT] JavaMail kommt nicht an Allgemeine Java-Themen 9
T JavaMail: "No provider for imaps" Allgemeine Java-Themen 2
B JavaMail Allgemeine Java-Themen 10
F JavaMail - Lokale eMail-Datei einlesen und parsen? Allgemeine Java-Themen 9
K Javamail:Probleme mit der Darstellung von Umlaute in Subject Allgemeine Java-Themen 15
Mike90 JavaMail: Betreff bei POP3 nicht abrufbar Allgemeine Java-Themen 2
hdi JavaMail Lib einbinden? Allgemeine Java-Themen 5
B JavaMail + Bouncy Castle: isEncrypted Allgemeine Java-Themen 3
N Again - JavaMail Allgemeine Java-Themen 4
F Eclipse JAVAMAIL läuft nur unter Eclipste Applet Viewer Allgemeine Java-Themen 4
M Javamail -> andere Möglichkeit für Attachment Allgemeine Java-Themen 5
J JavaMail nur mit JEE? Allgemeine Java-Themen 4
C javamail signatur und verschlüsselung Allgemeine Java-Themen 2
R Javamail Allgemeine Java-Themen 5
V Source zu Javamail? Allgemeine Java-Themen 2
F Umlaute: E-Mail per JavaMail und Textfile Allgemeine Java-Themen 5
G Javamail Nachricht senden: Betreff und Header fehlen Allgemeine Java-Themen 4
G Frage zu JAVAMail Allgemeine Java-Themen 10
T JavaMail versendet Schrott Allgemeine Java-Themen 9
C Probleme mit JavaMail und JAR-File Allgemeine Java-Themen 10
S JavaMail --> HTML-Mail verschicken? Allgemeine Java-Themen 7
J Externe File Emails für JavaMail Allgemeine Java-Themen 4
D JavaMail SMTP Fehlermeldung Allgemeine Java-Themen 2
D JavaMail Fehlermeldung Allgemeine Java-Themen 4
Luma JavaMail, Was versteht sich unter der CDDL Lizenz Allgemeine Java-Themen 6
G JavaMail API Allgemeine Java-Themen 4
S Mit javamail kompiliertes Programm läuft nicht ohne jar's Allgemeine Java-Themen 6
G JavaMail - Message vom Server, wie abfragen? Allgemeine Java-Themen 2
R JavaMail + Lotus Notes Allgemeine Java-Themen 8
S JavaMail: Problem mit SecurityException Allgemeine Java-Themen 2
P Probleme mit javaMail Allgemeine Java-Themen 2
M JavaMail? Allgemeine Java-Themen 3
D JavaMail - Authenticator Allgemeine Java-Themen 6
L Input/Output Email mit großer Pdf Anhang auslesen? Allgemeine Java-Themen 3
marcooooo Frage zum Beispiel im Anhang Allgemeine Java-Themen 16
B Java Mail: Prüfen, ob Email hat ein Anhang oder nicht Allgemeine Java-Themen 2
D kein Versand von Mails mit Anhang mehr Allgemeine Java-Themen 2
P "Email" versenden mit Anhang Allgemeine Java-Themen 5
U Mailclient über getDesktop.mail vorbereiten, Problem beim Anhang: Allgemeine Java-Themen 3
K Email mit Anhang über mailto:. versenden Allgemeine Java-Themen 11
D Datei mit "Kohsuke GitHub API" in Repository hochladen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben