Merge branch 'main' into lang_de
This commit is contained in:
@@ -30,21 +30,49 @@ public class SmtpClient {
|
||||
this.port = port;
|
||||
}
|
||||
|
||||
public void bccForward(String from, Message message, List<String> emails) throws MessagingException {
|
||||
|
||||
|
||||
public void forward(String newSender, List<String> receivers, Message message, String subject, boolean forwardAsAttachment, boolean bcc, String replyTo) throws MessagingException {
|
||||
if (session == null) login();
|
||||
MimeMessage forward = new MimeMessage(session);
|
||||
forward.setFrom(from);
|
||||
forward.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(String.join(", ",emails)));
|
||||
forward.setSubject(message.getSubject());
|
||||
var oldSender = message.getFrom()[0].toString();
|
||||
if (newSender != null){
|
||||
var pos = subject.indexOf(" (from ");
|
||||
while (pos > 0){
|
||||
var end = subject.indexOf(')',pos);
|
||||
if (end < pos) break;
|
||||
subject = (subject.substring(0,pos)+subject.substring(end+1)).trim();
|
||||
pos = subject.indexOf(" (from ");
|
||||
}
|
||||
forward.setFrom(newSender);
|
||||
forward.setSubject(subject+" (from "+oldSender+")");
|
||||
} else {
|
||||
forward.setFrom(oldSender);
|
||||
forward.setSubject(subject);
|
||||
}
|
||||
if (replyTo != null) forward.setReplyTo(InternetAddress.parse(replyTo));
|
||||
var recipientType = bcc ? Message.RecipientType.BCC : Message.RecipientType.TO;
|
||||
forward.setRecipients(recipientType,InternetAddress.parse(String.join(", ",receivers)));
|
||||
|
||||
MimeMultipart multipart = new MimeMultipart();
|
||||
MimeBodyPart messageBodyPart = new MimeBodyPart();
|
||||
if (forwardAsAttachment){
|
||||
MimeBodyPart bodyPart = new MimeBodyPart();
|
||||
bodyPart.setText("Find the forwarded message in the attachment(s)!\n");
|
||||
multipart.addBodyPart(bodyPart);
|
||||
|
||||
messageBodyPart.setDataHandler(message.getDataHandler());
|
||||
multipart.addBodyPart(messageBodyPart);
|
||||
// create another body part to contain the message to be forwarded
|
||||
bodyPart = new MimeBodyPart();
|
||||
// forwardedMsg is the MimeMessage object you want to forward as an attachment
|
||||
bodyPart.setContent(message, "message/rfc822");
|
||||
bodyPart.setDisposition(Part.ATTACHMENT);
|
||||
multipart.addBodyPart(bodyPart);
|
||||
} else {
|
||||
MimeBodyPart bodyPart = new MimeBodyPart();
|
||||
|
||||
bodyPart.setDataHandler(message.getDataHandler());
|
||||
multipart.addBodyPart(bodyPart);
|
||||
}
|
||||
forward.setContent(multipart);
|
||||
|
||||
send(forward);
|
||||
}
|
||||
|
||||
@@ -64,6 +92,7 @@ public class SmtpClient {
|
||||
}
|
||||
|
||||
public void send(String senderAdress, String senderName, String receivers, String subject, String content) throws MessagingException, UnsupportedEncodingException {
|
||||
login();
|
||||
MimeMessage message = new MimeMessage(session);
|
||||
message.addHeader("Content-Type","text/plain; charset="+UTF8);
|
||||
message.addHeader("format","flowed");
|
||||
|
||||
Reference in New Issue
Block a user