[
https://issues.apache.org/jira/browse/NIFI-4326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16149630#comment-16149630
]
ASF GitHub Bot commented on NIFI-4326:
--------------------------------------
Github user kevdoran commented on a diff in the pull request:
https://github.com/apache/nifi/pull/2111#discussion_r136448958
--- Diff:
nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/main/java/org/apache/nifi/processors/email/ExtractEmailAttachments.java
---
@@ -131,11 +132,15 @@ public void process(final InputStream rawIn) throws
IOException {
MimeMessageParser parser = new
MimeMessageParser(originalMessage).parse();
// RFC-2822 determines that a message must have a
"From:" header
// if a message lacks the field, it is flagged as
invalid
- Address[] from = originalMessage.getFrom();
+ if
(InternetAddress.parseHeader(originalMessage.getHeader("From", ","), false) ==
null) {
+ if
(InternetAddress.parseHeader(originalMessage.getHeader("Sender", ","), false)
== null) {
--- End diff --
Do you think falling back to "Sender" if "From" is not present for RFC
validation is desired behavior? According to RFC-2882, and the RFCs that update
it ([RFC-5322](https://tools.ietf.org/html/rfc5322),
[RFC-6854](https://tools.ietf.org/html/rfc6854)), the "Sender" field should
only be present if "From" is also present.
That said, @btwood, have you encountered email servers that use "Sender"
without "From"? If so, it might be worth considering adjusting the
implementation here to reflect what is likely to be encountered in the wild vs.
strict RFC specification.
> ExtractEmailHeaders.java unhandled Exceptions
> ---------------------------------------------
>
> Key: NIFI-4326
> URL: https://issues.apache.org/jira/browse/NIFI-4326
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core Framework
> Affects Versions: 1.3.0
> Environment: jdk 1.8.0_121-b13
> Reporter: Benjamin Wood
> Priority: Minor
> Fix For: 1.4.0
>
> Original Estimate: 0.5h
> Remaining Estimate: 0.5h
>
> The ExtractEmailHeaders processor throws a NullPointerException if there is
> no TO, CC, and BCC recipients.
> If there are no recipients "originalMessage.getAllRecipients()" returns NULL,
> and not a 0 length array.
> If an address is empty (<> or " ") then getRecipients() will throw an "Empty
> Address" AddressException
> It's possible this is only an issue with Oracle Java.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)