javax.mail.Multipartから:
System プロパティを true に設定すると、mail.mime.multipart.ignoreexistingboundaryparameter
境界が無視され、代わりにメッセージ内の境界線が検索されます。
このプロパティを に設定してからtrue
、次を使用して独自のプロパティを追加してみてください
mimeMsg.setHeader("Content-Type","");
私はそれを実装していませんが、うまくいくと確信しています
アップデート
MimeMultipart クラスをサブクラス化し、getBoundaryMethod()
. 以下のサンプルコードを参照してください。
import javax.activation.DataSource;
import javax.mail.MessagingException;
import javax.mail.internet.ContentType;
import javax.mail.internet.MimeMultipart;
public class MyMimeMultyPart extends MimeMultipart {
/**
* DataSource that provides our InputStream.
*/
protected DataSource ds;
/**
* Indicates if the data has been parsed.
*/
protected boolean parsed = true;
private ContentType type;
public MyMimeMultyPart(DataSource dataSource) throws MessagingException {
super(dataSource);
}
public MyMimeMultyPart(String subtype) {
type = new ContentType("multipart", subtype, null);
type.setParameter("boundary", getBoundary());
contentType = type.toString();
}
public MyMimeMultyPart() {
super();
}
private static int part;
private synchronized static String getBoundary() {
int i;
synchronized (MimeMultipart.class) {
i = part++;
}
StringBuffer buf = new StringBuffer(64);
buf.append("----=_Part_").append(i).append('_').append((new Object()).hashCode()).append('.').append(System.currentTimeMillis());
return buf.toString();
}
}