作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们已经被这个问题困扰有一段时间了。在我们的项目中,我们试图解析写入文件的电子邮件并将数据获取到 pojo 中。它适用于大多数情况,但当电子邮件 ID 太长时,邮件 ID 会转到下一行,因此不会获取发件人地址,而是获取名称。我们正在使用 commons-email-1.4.
包含电子邮件消息的输入文件具有
案例1:
From: "def, abc [CCC-OT]" <abc.def@test.com> //here it fetches the mail id properly
如果邮件 ID 较长,则文件具有
情况2:
From: "defxacdhf, abc [CCC-OT]"
<abc.defxacdhf@test.com>// here the mail id jumps to the next line so the from address fetched contains the name
这是示例代码
ByteArrayInputStream byteArrayStream = new ByteArrayInputStream(FileUtils.getStreamAsByteArray(buffInStream,
lengthOfFile));
// MimeMessage message = new MimeMessage(mailSession, byteArrayStream);
MimeMessageParser mimeParser = new MimeMessageParser(MimeMessageUtils.createMimeMessage(mailSession,
byteArrayStream));
MimeMessageParser parsedMessage = mimeParser.parse();
当我们尝试获取发件人地址时
emailData.setFromAddress(parsedMessage.getFrom());
在 case1 中,它返回 abc.def@test.com
,在 case2 中,它返回 "defxacdhf, abc [CCC-OT]"
。如有任何帮助,我们将不胜感激。
编辑脚本文件的读取和写入如下所示。
while read line
do
echo "$line" >> /directory/$FILE_NAME
done
最佳答案
我不明白为什么你使用 shell while 循环来读取数据,而不是只使用 cat 或类似的东西,但问题在于你使用“read”。默认情况下,read 将输入行拆分为字段,并由 shell IFS 环境变量指定的字段分隔符分隔。前导字段分隔符将被忽略,因此当您读取以空格开头的行时,空格将被忽略。
将循环更改为:
while IFS= read -r line
do
echo "$line" >> /directory/$FILE_NAME
done
在每次读取之前将 IFS 设置为空字符串,并指定“原始”读取,以便反斜杠字符不特殊。
但是除非您在读取循环中执行其他操作,否则这样做会简单得多
cat > /directory/$FILE_NAME
关于java - MimeMessageParser 无法从地址获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34173495/
我们已经被这个问题困扰有一段时间了。在我们的项目中,我们试图解析写入文件的电子邮件并将数据获取到 pojo 中。它适用于大多数情况,但当电子邮件 ID 太长时,邮件 ID 会转到下一行,因此不会获取发
我是一名优秀的程序员,十分优秀!