我正在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。
答案 0 :(得分:2)
电子邮件可能不包含多个Message-Id
标题,但其他电子邮件标题字段可能会多次出现。 getHeader函数返回一个数组以考虑这些因素。
例如,可以多次设置Recieved
标头,以提供处理电子邮件的完整服务器跟踪。
答案 1 :(得分:2)
互联网电子邮件格式的当前规范是RFC 5322。这指定电子邮件消息可以包含零个或一个消息ID"标题,建议使用。 (参见链接版本中的第20页)
因此,任何包含多个" message-id"的电子邮件都是如此。标头不符合。
但是,如果您要实现邮件阅读器或处理器,建议允许使用不符合要求的电子邮件。至少,您的处理器应该处理这样的电子邮件,以便它不会破坏"。 (这种脆弱性可能允许某人攻击你的邮件处理器,也许是它运行的系统。)