Select receipt request in send dialog

This commit is contained in:
M66B
2019-10-01 13:56:48 +02:00
parent 43612ecd2b
commit 88fc8efe81
11 changed files with 2004 additions and 77 deletions

View File

@@ -46,6 +46,7 @@ import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
@@ -167,6 +168,34 @@ public class MessageHelper {
if (message.subject != null)
imessage.setSubject(message.subject);
// Send message
if (identity != null) {
// Add reply to
if (identity.replyto != null)
imessage.setReplyTo(InternetAddress.parse(identity.replyto));
// Add extra bcc
if (identity.bcc != null) {
List<Address> bcc = new ArrayList<>();
Address[] existing = imessage.getRecipients(Message.RecipientType.BCC);
if (existing != null)
bcc.addAll(Arrays.asList(existing));
bcc.addAll(Arrays.asList(InternetAddress.parse(identity.bcc)));
imessage.setRecipients(Message.RecipientType.BCC, bcc.toArray(new Address[0]));
}
// Delivery/read request
if (message.receipt_request != null && message.receipt_request) {
String to = (identity.replyto == null ? identity.email : identity.replyto);
// defacto standard
imessage.addHeader("Return-Receipt-To", to);
// https://tools.ietf.org/html/rfc3798
imessage.addHeader("Disposition-Notification-To", to);
}
}
MailDateFormat mdf = new MailDateFormat();
mdf.setTimeZone(TimeZone.getTimeZone("UTC"));
imessage.setHeader("Date", mdf.format(new Date()));
@@ -236,7 +265,7 @@ public class MessageHelper {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean usenet = prefs.getBoolean("usenet_signature", false);
if (message.receipt_request != null && message.receipt_request) {
if (message.receipt != null && message.receipt) {
// https://www.ietf.org/rfc/rfc3798.txt
Multipart report = new MimeMultipart("report; report-type=disposition-notification");