Wie kopiere ich den Text einer json Datei und füge diesen in eine E-Mail ein mit Java?


10.05.2020, 04:06

Ich würde gerne den text einer json Datei kopieren und als E-Mail Text verschicken.

Andernfalls könnte die Datei auch im Anhang verschickt werden

Nur leider weiß ich nicht wie ich den Text bei einer E-Mail einfügen kann.

Hat sich jemand damit schon auseinander gesetzt.

Mit Freundlichen grüßen

Tim

2 Antworten

Option a)

Du nutzt die GMail API. Direkt nach dem Quickstart wäre dieser Guide für dich von Interesse.

Option b)

Du verwendest die Java Mail API. Einen Artikel dazu findest du hier.


TimWern 
Beitragsersteller
 10.05.2020, 12:02

Ich habe jetzt nur ein Teil des Programmes reingeschickt welches ich dazu nutze.

Der zweite Teil sieht wie folgt aus.

package Datei;

import java.io.UnsupportedEncodingException;

import java.util.Date;

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

public class MailSender {

protected Session mailSession;

public void login(String smtpHost, String smtpPort, String username, String password) {

Properties props = new Properties();

props.put("mail.smtp.host", smtpHost);

props.put("mail.smtp.socketFactory.port", smtpPort);

props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

props.put("mail.smtp.auth", "true");

props.put("mail.smtp.port", smtpPort);

Authenticator auth = new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(username, password);

}

};

this.mailSession = Session.getDefaultInstance(props, auth);

System.out.println("Eingeloggt.");

}

public void send(String senderMail, String senderName, String receiverAddresses, String subject, String message)

throws MessagingException, IllegalStateException, UnsupportedEncodingException {

if (mailSession == null) {

throw new IllegalStateException("Du musst dich zuerst einloggen (login()-Methode)");

}

MimeMessage msg = new MimeMessage(mailSession);

msg.addHeader("Content-type", "text/HTML; charset=UTF-8");

msg.addHeader("format", "flowed");

msg.addHeader("Content-Transfer-Encoding", "8bit");

msg.setFrom(new InternetAddress(senderMail, senderName));

msg.setReplyTo(InternetAddress.parse(senderMail, false));

msg.setSubject(subject, "UTF-8");

msg.setText(message, "UTF-8");

msg.setSentDate(new Date());

msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(receiverAddresses, false));

System.out.println("Versende E-Mail...");

Transport.send(msg);

System.out.println("E-Mail versendet.");

}

}

Das ist der zweite Teil des Programmes.

Aber ich würde Option a auch nicht schlecht finden, ich versuche es mal.

0

Wo liegt denn der Inhalt der json-Datei? Ist der auch als Datei abgelegt oder kommt er als Parameter mit? Oder völlig anders?

Woher ich das weiß:Berufserfahrung

TimWern 
Beitragsersteller
 10.05.2020, 11:54

Ich bin jetzt nicht so gut mit Java vertraut.

Die json Datei habe ich noch nicht angegeben, da ich nicht genau wusste wie ich diesen in die E-Mail einbringen soll.

Die json Datei soll z.B auf Laufwerk C liegen und würde dann als Parameter gespeichert werden und in der E-Mail nachricht abgefragt werden.

0