use of com.fsck.k9.mail.Address in project k-9 by k9mail.
the class MimeMessageParseTest method getRecipients_withDeliveredTo.
@Test
public void getRecipients_withDeliveredTo() throws Exception {
MimeMessage msg = parseWithoutRecurse(toStream("From: <adam@example.org>\r\n" + "To: <eva@example.org>\r\n" + "Delivered-To: <test@mail.com>\r\n" + "Subject: Testmail\r\n" + "MIME-Version: 1.0\r\n" + "Content-type: text/plain\r\n" + "Content-Transfer-Encoding: 7bit\r\n" + "\r\n" + "this is some test text."));
Address[] deliveredToAddresses = msg.getRecipients(RecipientType.DELIVERED_TO);
assertEquals(1, deliveredToAddresses.length);
assertEquals(new Address("<test@mail.com>"), deliveredToAddresses[0]);
}
use of com.fsck.k9.mail.Address in project k-9 by k9mail.
the class SmtpTransport method sendMessage.
@Override
public void sendMessage(Message message) throws MessagingException {
Set<String> addresses = new LinkedHashSet<>();
for (Address address : message.getRecipients(RecipientType.TO)) {
addresses.add(address.getAddress());
}
for (Address address : message.getRecipients(RecipientType.CC)) {
addresses.add(address.getAddress());
}
for (Address address : message.getRecipients(RecipientType.BCC)) {
addresses.add(address.getAddress());
}
message.removeHeader("Bcc");
if (addresses.isEmpty()) {
return;
}
close();
open();
// the size of messages, count the message's size before sending it
if (largestAcceptableMessage > 0 && message.hasAttachments()) {
if (message.calculateSize() > largestAcceptableMessage) {
throw new MessagingException("Message too large for server", true);
}
}
boolean entireMessageSent = false;
try {
String mailFrom = constructSmtpMailFromCommand(message.getFrom(), is8bitEncodingAllowed);
if (isPipeliningSupported) {
Queue<String> pipelinedCommands = new LinkedList<>();
pipelinedCommands.add(mailFrom);
for (String address : addresses) {
pipelinedCommands.add(String.format("RCPT TO:<%s>", address));
}
executePipelinedCommands(pipelinedCommands);
readPipelinedResponse(pipelinedCommands);
} else {
executeCommand(mailFrom);
for (String address : addresses) {
executeCommand("RCPT TO:<%s>", address);
}
}
executeCommand("DATA");
EOLConvertingOutputStream msgOut = new EOLConvertingOutputStream(new LineWrapOutputStream(new SmtpDataStuffing(outputStream), 1000));
message.writeTo(msgOut);
msgOut.endWithCrLfAndFlush();
// After the "\r\n." is attempted, we may have sent the message
entireMessageSent = true;
executeCommand(".");
} catch (NegativeSmtpReplyException e) {
throw e;
} catch (Exception e) {
throw new MessagingException("Unable to send message", entireMessageSent, e);
} finally {
close();
}
}
Aggregations