public String asString() { return asString(MailAddress.NULL_SENDER_AS_STRING); }
public String asString() { return asString(MailAddress.NULL_SENDER_AS_STRING); }
/** * Writes the envelope sender to the <code>james:sender</code> property. * * @param node * mail node * @param sender * envelope sender * @throws MessagingException * if a messaging error occurs * @throws RepositoryException * if a repository error occurs */ private void setSender(Node node, MaybeSender sender) throws RepositoryException { node.setProperty("james:sender", sender.asString()); }
private String getContext(SMTPSession session, MailAddress recipientAddress, String recipient) { StringBuilder sb = new StringBuilder(128); if (null != recipientAddress) { sb.append(" [to:").append(recipientAddress.asString()).append(']'); } else if (null != recipient) { sb.append(" [to:").append(recipient).append(']'); } MaybeSender sender = (MaybeSender) session.getAttachment(SMTPSession.SENDER, State.Transaction); if (null != sender && !sender.isNullSender()) { sb.append(" [from:").append(sender.asString()).append(']'); } return sb.toString(); }
private Properties getPropertiesForMail(Mail mail) { Properties props = session.getProperties(); props.put("mail.smtp.from", mail.getMaybeSender().asString()); return props; }
/** * Returns the from. * * @return String */ public String getEnvelopeFrom() { return getMail().getMaybeSender().asString(""); }
/** * Handler method called upon receipt of a MAIL command. Sets up handler to * deliver mail as the stated sender. * * @param session * SMTP session object * @param argument * the argument passed in with the command by the SMTP client */ private Response doMAIL(SMTPSession session, String argument) { StringBuilder responseBuffer = new StringBuilder(); MaybeSender sender = (MaybeSender) session.getAttachment(SMTPSession.SENDER, State.Transaction); responseBuffer.append( DSNStatus.getStatus(DSNStatus.SUCCESS, DSNStatus.ADDRESS_OTHER)) .append(" Sender <"); if (sender != null) { responseBuffer.append(sender.asString()); } responseBuffer.append("> OK"); return new SMTPResponse(SMTPRetCode.MAIL_OK, responseBuffer); }
private List<MailAddress> getSenderAsList(Mail originalMail) { MaybeSender reversePath = originalMail.getMaybeSender(); if (getInitParameters().isDebug()) { LOGGER.debug("Processing a bounce request for a message with a reverse path. The bounce will be sent to {}", reversePath.asString()); } return reversePath.asList(); }
@Test void asStringShouldReturnWrappedValue() { assertThat(MaybeSender.of(mailAddress).asString()) .isEqualTo(MAIL_ADDRESS_STRING); }
@Test void asStringWithDefaultShouldReturnWrappedValue() { assertThat(MaybeSender.of(mailAddress).asString("default")) .isEqualTo(MAIL_ADDRESS_STRING); }
public SMTPMessageSender sendMessage(Mail mail) throws MessagingException, IOException { String from = mail.getMaybeSender().asString(); doHelo(); doSetSender(from); mail.getRecipients().stream() .map(MailAddress::asString) .forEach(Throwing.consumer(this::doAddRcpt)); doData(asString(mail.getMessage())); return this; }
@Test void asStringWithDefaultShouldReturnWrappedValue() { assertThat(MaybeSender.of(mailAddress).asString("default")) .isEqualTo(MAIL_ADDRESS_STRING); }
@Test void asStringWithDefaultShouldReturnDefaultWhenNullSender() { assertThat(MaybeSender.nullSender().asString("default")) .isEqualTo("default"); }
@Test void asStringShouldReturnWrappedValue() { assertThat(MaybeSender.of(mailAddress).asString()) .isEqualTo(MAIL_ADDRESS_STRING); }
@Test void asStringShouldReturnDefaultWhenNullSender() { assertThat(MaybeSender.nullSender().asString()) .isEqualTo(MailAddress.NULL_SENDER_AS_STRING); }
@Test void asStringWithDefaultShouldReturnDefaultWhenNullSender() { assertThat(MaybeSender.nullSender().asString("default")) .isEqualTo("default"); }
@Test void asStringShouldReturnDefaultWhenNullSender() { assertThat(MaybeSender.nullSender().asString()) .isEqualTo(MailAddress.NULL_SENDER_AS_STRING); }
@Override public void storeMail(MailAddress recipient, Mail mail) throws MessagingException { String username = computeUsername(recipient); String locatedFolder = locateFolder(username, mail); ComposedMessageId composedMessageId = mailboxAppender.append(mail.getMessage(), username, locatedFolder); metric.increment(); LOGGER.info("Local delivered mail {} successfully from {} to {} in folder {} with composedMessageId {}", mail.getName(), mail.getMaybeSender().asString(), recipient.asPrettyString(), locatedFolder, composedMessageId); }
private ExecutionResult tryDeliver(Mail mail) throws MessagingException { if (mail.getRecipients().isEmpty()) { LOGGER.info("No recipients specified... not sure how this could have happened."); return ExecutionResult.permanentFailure(new Exception("No recipients specified for " + mail.getName() + " sent by " + mail.getMaybeSender().asString())); } if (configuration.isDebug()) { LOGGER.debug("Attempting to deliver {}", mail.getName()); } Domain host = retrieveTargetHostname(mail); try { // Figure out which servers to try to send to. This collection // will hold all the possible target servers Iterator<HostAddress> targetServers = dnsHelper.retrieveHostAddressIterator(host.asString()); if (!targetServers.hasNext()) { return handleNoTargetServer(mail, host); } return doDeliver(mail, InternetAddressConverter.convert(mail.getRecipients()), targetServers); } catch (TemporaryResolutionException e) { return logAndReturn(mail, ExecutionResult.temporaryFailure(new MessagingException("Temporary problem looking " + "up mail server for host: " + host + ". I cannot determine where to send this message."))); } }
@Override public void service(Mail mail) throws MessagingException { String remoteAddr = mail.getRemoteAddr(); String helo = mail.getRemoteHost(); if (!remoteAddr.equals("127.0.0.1")) { String sender = mail.getMaybeSender().asString(""); SPFResult result = spf.checkSPF(remoteAddr, sender, helo); mail.setAttribute(EXPLANATION_ATTRIBUTE, result.getExplanation()); mail.setAttribute(RESULT_ATTRIBUTE, result.getResult()); LOGGER.debug("ip:{} from:{} helo:{} = {}", remoteAddr, sender, helo, result.getResult()); if (addHeader) { try { MimeMessage msg = mail.getMessage(); msg.addHeader(result.getHeaderName(), result.getHeaderText()); msg.saveChanges(); } catch (MessagingException e) { // Ignore not be able to add headers } } } }