电子邮件可以包含多个消息ID吗?

时间:2016-04-04 13:07:27

标签: java email

我正在java中实现一个邮件客户端,我正在使用以下命令检索MessageId:def plotea_fig(map,tite): fig = pl.figure(figsize=(8,6), edgecolor='W',facecolor='W') m = Basemap(projection='merc', llcrnrlat=-5.125, urcrnrlat=14.125, llcrnrlon=-80.125, urcrnrlon=-65.5, resolution='i') m.drawcoastlines(linewidth = 0.8) m.drawstates(linewidth = 0.3) m.drawcountries(linewidth = 0.8) m.drawparallels(np.arange(-5, 14.9583, 5),labels=[1,0,0,1]) m.drawmeridians(np.arange(-170,-60,5),labels=[1,0,0,1]) x,y = m(lons,lats) CS1 = m.contourf(x,y,map, 35, cmap=pl.cm.jet_r, animated=True) cb = m.colorbar(CS1, size="5%", pad="2%") cb.ax.tick_params(labelsize=20) pl.xlabel('LONGITUDE') pl.ylabel('LATITUD') pl.title(title) pl.savefig(title,bbox_inches='tight', formart = 'png') return m

由于String[] msgIds = msg.getHeader("Message-Id");返回一个数组。我想知道是否有任何情况下电子邮件可能包含多个ID。

我尝试通过来回发送/回复/转发电子邮件来测试它,但每次只包含一个ID。

2 个答案:

答案 0 :(得分:2)

电子邮件可能不包含多个Message-Id标题,但其他电子邮件标题字段可能会多次出现。 getHeader函数返回一个数组以考虑这些因素。

例如,可以多次设置Recieved标头,以提供处理电子邮件的完整服务器跟踪。

答案 1 :(得分:2)

互联网电子邮件格式的当前规范是RFC 5322。这指定电子邮件消息可以包含零个或一个消息ID"标题,建议使用。 (参见链接版本中的第20页)

因此,任何包含多个" message-id"的电子邮件都是如此。标头不符合。

但是,如果您要实现邮件阅读器或处理器,建议允许使用不符合要求的电子邮件。至少,您的处理器应该处理这样的电子邮件,以便它不会破坏"。 (这种脆弱性可能允许某人攻击你的邮件处理器,也许是它运行的系统。)