X-HeaderをDtoから設定できるようにしたった
突然ですが、X-Headerの内容をDtoのプロパティにセットする事で動的に設定出来るようにしました。
Dtoに「XHeader」という名前のプロパティを作ればOKです。この名前はもう固定。
public class TestDto{ private String XHeader; public String getXHeader() { return XHeader; } public void setXHeader(String header) { XHeader = header; } }
型は、StringかMapに対応。Stringの場合は、
String header = "Message-ID: hogehogehogehoge\nX-Mailer: hogeMailer"; dto.setXHeader(header);
みたくすればよいです。キーと値は「: (コロンと半角スペース)」で区切ります。属性は改行コードで区切ります。改行コードはCRLFでもCRでもLFでも、テストは通ってます。
Mapの場合は、キーと値をそのまんまputしてやればよいです。どちらも型はString限定で。
Map header = new HashMap(); header.put("Message-ID", "hogehogehogehoge"); header.put("X-Mailer", "hogeMailer"); dto.setXHeader(header);
結果は同じ。
例えばtoがプロパティとしてあって、X-Headerにも「To: hogehoge」って書いちゃった場合、どうなるかは検証してないです・・・。どうなるんだろう。
0.9.6-SNAPSHOTでMavenリポジトリにデプロイしてあります。正式リリースはもうちょっと様子見てからの予定。