Java 类javax.mail.internet.InternetHeaders 实例源码
项目:nexus-repository-r
文件:RMetadataUtils.java
/**
* Parses metadata stored in a Debian Control File-like format.
*
* @see <a href="https://cran.r-project.org/doc/manuals/r-release/R-exts.html#The-DESCRIPTION-file">Description File</a>
*/
public static Map<String, String> parseDescriptionFile(final InputStream in) {
checkNotNull(in);
try {
LinkedHashMap<String, String> results = new LinkedHashMap<>();
InternetHeaders headers = new InternetHeaders(in);
Enumeration headerEnumeration = headers.getAllHeaders();
while (headerEnumeration.hasMoreElements()) {
Header header = (Header) headerEnumeration.nextElement();
String name = header.getName();
String value = header.getValue()
.replace("\r\n", "\n")
.replace("\r", "\n"); // TODO: "should" be ASCII only, otherwise need to know encoding?
results.put(name, value); // TODO: Supposedly no duplicates, is this true?
}
return results;
} catch (MessagingException e) {
throw new RException(null, e);
}
}
项目:hermes
文件:Headers.java
/**
* Adds the given name-values header to the given headers object.
*
* @param headers the headers object.
* @param name the header name.
* @param values the header values.
*/
private void addHeaders(Object headers, String name, Object[] values) {
if (name != null) {
for (int i=0; i<values.length; i++) {
if (headers instanceof StringWriter) {
StringWriter outs = (StringWriter)headers;
outs.write(name+": "+values[i]+"\r\n");
continue;
}
StringTokenizer subvalues = new StringTokenizer(
values[i].toString(), ",");
while (subvalues.hasMoreTokens()) {
String subvalue = subvalues.nextToken().trim();
if (headers instanceof MimeHeaders) {
((MimeHeaders)headers).addHeader(name, subvalue);
}
else if (headers instanceof InternetHeaders) {
((InternetHeaders)headers).addHeader(name, subvalue);
}
}
}
}
}
项目:hermes
文件:AS2Message.java
/**
* Creates a new instance of AS2Message.
*
* @param headers the headers of this message.
* @param content the content stream.
* @throws AS2MessageException if unable to construct from the given content stream.
*/
public AS2Message(InternetHeaders headers, InputStream content)
throws AS2MessageException {
try {
load(headers, content);
} catch (Exception e) {
throw new AS2MessageException(
"Unable to construct AS2 message from content stream", e);
}
}
项目:sip-servlets
文件:CallStateHandler.java
public static void setBodyPart(Multipart multipart, byte[] content, String contentType) throws MessagingException {
String disposition = null;
for (int i = 0; i < multipart.getCount(); i++) {
BodyPart bp = multipart.getBodyPart(i);
if (contentType.equalsIgnoreCase(bp.getContentType())) {
disposition = bp.getDisposition();
multipart.removeBodyPart(i);
break;
}
}
InternetHeaders ih1 = new InternetHeaders();
ih1.setHeader("Content-Type", contentType);
BodyPart bodyPart = new MimeBodyPart(ih1, content);
if (disposition != null) {
bodyPart.setDisposition(disposition);
}
multipart.addBodyPart(bodyPart);
}
项目:sip-servlets
文件:Test.java
public static void setBodyPart(Multipart multipart, byte[] content, String contentType) throws MessagingException {
String disposition = null;
for (int i = 0; i < multipart.getCount(); i++) {
BodyPart bp = multipart.getBodyPart(i);
if (contentType.equalsIgnoreCase(bp.getContentType())) {
disposition = bp.getDisposition();
multipart.removeBodyPart(i);
break;
}
}
InternetHeaders ih1 = new InternetHeaders();
ih1.setHeader("Content-Type", contentType);
BodyPart bodyPart = new MimeBodyPart(ih1, content);
if (disposition != null) {
bodyPart.setDisposition(disposition);
}
multipart.addBodyPart(bodyPart);
}
项目:domaintest
文件:EmailApiModule.java
/**
* Provides parsed email headers from the "headers" param in a multipart/form-data request.
* <p>
* Although SendGrid parses some headers for us, it doesn't parse "reply-to", so we need to do
* this. Once we are doing it, it's easier to be consistent and use this as the sole source of
* truth for information that originates in the headers.
*/
@Provides
@Singleton
InternetHeaders provideHeaders(FileItemIterator iterator) {
try {
while (iterator != null && iterator.hasNext()) {
FileItemStream item = iterator.next();
// SendGrid sends us the headers in the "headers" param.
if (item.getFieldName().equals("headers")) {
try (InputStream stream = item.openStream()) {
// SendGrid always sends headers in UTF-8 encoding.
return new InternetHeaders(new ByteArrayInputStream(
CharStreams.toString(new InputStreamReader(stream, UTF_8.name())).getBytes(UTF_8)));
}
}
}
} catch (MessagingException | FileUploadException | IOException e) {
// If we fail parsing the headers fall through returning the empty header object below.
}
return new InternetHeaders(); // Parsing failed or there was no "headers" param.
}
项目:jpkg-library
文件:PackageInfo.java
/**
* Add the defined package data to an RFC822 formatted header formatted for a Debian package
* control file.
* Order of fields determined from:
* <a href="http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-binarycontrolfiles">Debian Policy Manual</a>
*/
public InternetHeaders getControlHeaders ()
{
final InternetHeaders headers = new InternetHeaders();
headers.addHeader(_name.getField(), _name.getFieldValue());
headers.addHeader(_version.getField(), _version.getFieldValue());
headers.addHeader(_section.getField(), _section.getFieldValue());
headers.addHeader(_priority.getField(), _priority.getFieldValue());
headers.addHeader(_architecture.getField(), _architecture.getFieldValue());
if (_dependencies.size() > 0) {
headers.addHeader(_dependencies.getField(), _dependencies.getFieldValue());
}
if (_conflicts.size() > 0) {
headers.addHeader(_conflicts.getField(), _conflicts.getFieldValue());
}
if (_replacements.size() > 0) {
headers.addHeader(_replacements.getField(), _replacements.getFieldValue());
}
headers.addHeader(_maintainer.getField(), _maintainer.getFieldValue());
headers.addHeader(_description.getField(), _description.getFieldValue());
return headers;
}
项目:jpkg-library
文件:ControlFile.java
/**
* Add the control file to the tar file.
*/
private void addControlFile (TarOutputStream tar, PackageInfo info, PackageTarFile dataTar)
throws IOException
{
// setup the RFC822 formatted header used for package metadata.
final InternetHeaders headers = info.getControlHeaders();
// add the "Installed-Size" field.
headers.addHeader(INSTALLED_SIZE, String.valueOf(dataTar.getTotalDataSize()));
final StringBuilder controlFile = new StringBuilder();
@SuppressWarnings("unchecked")
final
Enumeration<String> en = headers.getAllHeaderLines();
while (en.hasMoreElements())
{
controlFile.append(en.nextElement()).append('\n');
}
final TarEntry entry = standardEntry(DEB_CONTROL_FILE, UnixStandardPermissions.STANDARD_FILE_MODE, controlFile.length());
tar.putNextEntry(entry);
IOUtils.write(controlFile.toString(), tar);
tar.closeEntry();
}
项目:irma_future_id
文件:FileBackedMimeBodyPart.java
private static File saveStreamToFile(InternetHeaders headers, InputStream content, File tempFile)
throws IOException
{
OutputStream out = new FileOutputStream(tempFile);
Enumeration en = headers.getAllHeaderLines();
while (en.hasMoreElements())
{
writeHeader(out, (String)en.nextElement());
}
writeSeperator(out);
saveContentToStream(out, content);
return tempFile;
}
项目:bc-java
文件:FileBackedMimeBodyPart.java
private static File saveStreamToFile(InternetHeaders headers, InputStream content, File tempFile)
throws IOException
{
OutputStream out = new FileOutputStream(tempFile);
Enumeration en = headers.getAllHeaderLines();
while (en.hasMoreElements())
{
writeHeader(out, (String)en.nextElement());
}
writeSeperator(out);
saveContentToStream(out, content);
return tempFile;
}
项目:jersey-smime
文件:EnvelopedWriter.java
@SuppressWarnings("unchecked")
public static MimeBodyPart createBodyPart(Providers providers, SMIMEOutput out) throws IOException, MessagingException {
ByteArrayOutputStream bodyOs = new ByteArrayOutputStream();
MessageBodyWriter writer = providers.getMessageBodyWriter(out.getType(), out.getGenericType(), null, out.getMediaType());
if (writer == null) {
throw new RuntimeException("Failed to find writer for type: " + out.getType().getName());
}
MultivaluedMap<String, String> bodyHeaders = new MultivaluedHashMap<String, String>();
bodyHeaders.add("Content-Type", out.getMediaType().toString());
writer.writeTo(out.getEntity(), out.getType(), out.getGenericType(), null, out.getMediaType(), bodyHeaders, bodyOs);
InternetHeaders ih = new InternetHeaders();
for (Map.Entry<String, List<String>> entry : bodyHeaders.entrySet()) {
for (String value : entry.getValue()) {
ih.addHeader(entry.getKey(), value);
}
}
return new MimeBodyPart(ih, bodyOs.toByteArray());
}
项目:jersey-smime
文件:EnvelopedTest.java
@Test
public void testHeaders()
throws Exception {
InternetHeaders ih = new InternetHeaders();
ih.addHeader("Content-Type", "application/xml");
MimeBodyPart _msg = new MimeBodyPart(ih, "<customer name=\"bill\"/>".getBytes());
SMIMEEnvelopedGenerator gen = new SMIMEEnvelopedGenerator();
OutputEncryptor encryptor = new JceCMSContentEncryptorBuilder(CMSAlgorithm.DES_EDE3_CBC)
.setProvider("BC")
.build();
RecipientInfoGenerator generator = new JceKeyTransRecipientInfoGenerator(cert);
gen.addRecipientInfoGenerator(generator);
//
// generate a MimeBodyPart object which encapsulates the content
// we want encrypted.
//
MimeBodyPart mp = gen.generate(_msg, encryptor);
output(mp);
}
项目:jersey-smime
文件:EnvelopedTest.java
@Test
public void testFromPythonGenerated() throws Exception {
InternetHeaders ih = new InternetHeaders();
ih.addHeader("Content-Disposition", "attachment; filename=\"smime.p7m\"");
ih.addHeader("Content-Type", "application/pkcs7-mime; smime-type=enveloped-data; name=\"smime.p7m\"");
ih.addHeader("Content-Transfer-Encoding", "base64");
MimeBodyPart mp = new MimeBodyPart(ih, python_smime.getBytes());
output(mp);
System.out.println("------------");
mp = decode2Mime(mp);
Assert.assertEquals("application/xml", mp.getContentType());
String body = toString(mp.getInputStream());
Assert.assertEquals("<customer name=\"bill\"/>", body.trim());
}
项目:logging-log4j2
文件:SmtpManager.java
/**
* Send the contents of the cyclic buffer as an e-mail message.
* @param layout The layout for formatting the events.
* @param appendEvent The event that triggered the send.
*/
public void sendEvents(final Layout<?> layout, final LogEvent appendEvent) {
if (message == null) {
connect(appendEvent);
}
try {
final LogEvent[] priorEvents = buffer.removeAll();
// LOG4J-310: log appendEvent even if priorEvents is empty
final byte[] rawBytes = formatContentToBytes(priorEvents, appendEvent, layout);
final String contentType = layout.getContentType();
final String encoding = getEncoding(rawBytes, contentType);
final byte[] encodedBytes = encodeContentToBytes(rawBytes, encoding);
final InternetHeaders headers = getHeaders(contentType, encoding);
final MimeMultipart mp = getMimeMultipart(encodedBytes, headers);
sendMultipartMessage(message, mp);
} catch (final MessagingException | IOException | RuntimeException e) {
logError("Caught exception while sending e-mail notification.", e);
throw new LoggingException("Error occurred while sending email", e);
}
}
项目:nexus-repository-r
文件:RPackagesUtils.java
static Content buildPackages(final Collection<Map<String, String>> entries) throws IOException {
CompressorStreamFactory compressorStreamFactory = new CompressorStreamFactory();
ByteArrayOutputStream os = new ByteArrayOutputStream();
try (CompressorOutputStream cos = compressorStreamFactory.createCompressorOutputStream(GZIP, os)) {
try (OutputStreamWriter writer = new OutputStreamWriter(cos, UTF_8)) {
for (Map<String, String> entry : entries) {
InternetHeaders headers = new InternetHeaders();
headers.addHeader(P_PACKAGE, entry.get(P_PACKAGE));
headers.addHeader(P_VERSION, entry.get(P_VERSION));
headers.addHeader(P_DEPENDS, entry.get(P_DEPENDS));
headers.addHeader(P_IMPORTS, entry.get(P_IMPORTS));
headers.addHeader(P_SUGGESTS, entry.get(P_SUGGESTS));
headers.addHeader(P_LICENSE, entry.get(P_LICENSE));
headers.addHeader(P_NEEDS_COMPILATION, entry.get(P_NEEDS_COMPILATION));
Enumeration<String> headerLines = headers.getAllHeaderLines();
while (headerLines.hasMoreElements()) {
String line = headerLines.nextElement();
writer.write(line, 0, line.length());
writer.write('\n');
}
writer.write('\n');
}
}
}
catch ( CompressorException e ) {
throw new RException(null, e);
}
return new Content(new BytesPayload(os.toByteArray(), "application/x-gzip"));
}
项目:hermes
文件:AS2RequestAdaptor.java
/**
* processRequest
* @param request
* @param response
* @return String
* @throws RequestListenerException
* @see hk.hku.cecid.piazza.commons.servlet.http.HttpRequestListener#processRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public String processRequest(HttpServletRequest request,
HttpServletResponse response) throws RequestListenerException {
try {
Headers headers = new Headers(request, response);
InternetHeaders requestHeaders = headers.getInternetHeaders();
InputStream requestStream = request.getInputStream();
AS2Message requestMessage = new AS2Message(requestHeaders, requestStream);
if (requestMessage.getFromPartyID() == null || requestMessage.getToPartyID() == null) {
response.sendError(HttpURLConnection.HTTP_BAD_REQUEST, "Invalid AS2 Message");
return null;
}
AS2Request as2request = new AS2Request(request);
as2request.setMessage(requestMessage);
AS2Response as2response = new AS2Response(response);
processRequest(as2request, as2response);
AS2Message responseMessage = as2response.getMessage();
if (responseMessage == null) {
return null;
}
InternetHeaders responseHeaders = responseMessage.getHeaders();
headers.putInternetHeaders(responseHeaders);
InputStream contentStream= responseMessage.getContentStream();
OutputStream responseStream= response.getOutputStream();
IOHandler.pipe(contentStream, responseStream);
return null;
}
catch (Exception e) {
throw new RequestListenerException("Error in processing AS2 request", e);
}
}
项目:hermes
文件:DispositionNotification.java
public DispositionNotification() throws AS2MessageException {
multiPart = new MimeMultipart();
textPart = new MimeBodyPart();
reportPart = new MimeBodyPart();
reportValues = new InternetHeaders();
try {
multiPart.setSubType(CONTENT_SUBTYPE);
multiPart.addBodyPart(textPart);
multiPart.addBodyPart(reportPart);
}
catch (MessagingException e) {
throw new AS2MessageException("Unable to construct a new disposition notification", e);
}
}
项目:hermes
文件:DispositionNotification.java
private void parseMDN(MimeMultipart report) throws AS2MessageException {
try {
int reportCount = report.getCount();
for (int i = 0; i < reportCount; i++) {
MimeBodyPart reportsPart = (MimeBodyPart) report.getBodyPart(i);
if (reportsPart.isMimeType("text/plain")) {
setText(reportsPart.getContent().toString());
}
else if (reportsPart.isMimeType(AS2Header.CONTENT_TYPE_MESSAGE_DISPOSITION_NOTIFICATION)) {
InternetHeaders rptValues = new InternetHeaders(reportsPart
.getInputStream());
setReportValue(REPORTING_UA, rptValues.getHeader(
REPORTING_UA, ", "));
setOriginalMessageID(rptValues.getHeader(
ORIG_RECIPIENT, ", "));
setReportValue(FINAL_RECIPIENT, rptValues.getHeader(
FINAL_RECIPIENT, ", "));
setReportValue(ORIG_MESSAGE_ID, rptValues.getHeader(
ORIG_MESSAGE_ID, ", "));
setReportValue(DISPOSITION, rptValues.getHeader(
DISPOSITION, ", "));
setReportValue(RECEIVED_CONTENT_MIC, rptValues
.getHeader(RECEIVED_CONTENT_MIC, ", "));
}
}
}
catch (Exception e) {
throw new AS2MessageException("Error in parsing MDN", e);
}
}
项目:hermes
文件:AS2Message.java
/**
* Creates a new instance of AS2Message.
*/
public AS2Message() {
this.headers = new InternetHeaders();
this.bodyPart = new MimeBodyPart();
setHeader(AS2Header.SUBJECT, "AS2 Message");
setHeader(AS2Header.FROM, getDefaultEmailAddress());
setHeader(AS2Header.AS2_VERSION, "1.1");
setHeader(AS2Header.DATE, StringUtilities.toGMTString(new Date()));
setMessageID(generateID());
}
项目:hermes
文件:AS2Message.java
/**
* Creates a new instance of AS2Message.
*
* @param message the message as input stream.
* @throws AS2MessageException if unable to construct from the given input stream.
*/
public AS2Message(InputStream message) throws AS2MessageException {
try {
BufferedInputStream bis= new BufferedInputStream(message);
load(new InternetHeaders(bis), bis);
bis.close();
} catch (Exception e) {
throw new AS2MessageException(
"Unable to construct AS2 message from input stream", e);
}
}
项目:hermes
文件:AS2Message.java
/**
* Creates a new instance of AS2Message.
*
* @param headers the headers of this message.
* @param content the content stream.
* @throws AS2MessageException if unable to construct from the given content stream.
*/
public AS2Message(InternetHeaders headers, InputStream content)
throws AS2MessageException {
try {
load(headers, content);
} catch (Exception e) {
throw new AS2MessageException(
"Unable to construct AS2 message from content stream", e);
}
}
项目:hermes
文件:AS2Message.java
/**
* Loads the given headers and content to this message.
*
* @param headers the message headers.
* @param content the message content.
* @throws MessagingException if unable to construct the mime body part.
* @throws IOException unable to read the content stream.
*/
private void load(InternetHeaders headers, InputStream content)
throws MessagingException, IOException {
InternetHeaders bodyHeaders = new InternetHeaders();
copyHeaders(headers, bodyHeaders, "(?i)(?s)content-.*", true);
this.headers = headers;
this.bodyPart = new MimeBodyPart(bodyHeaders, IOHandler
.readBytes(content));
}
项目:hermes
文件:AS2Message.java
/**
* Gets the headers of this message.
*
* @return a copy of the headers of this message.
*/
public InternetHeaders getHeaders() {
InternetHeaders h = new InternetHeaders();
copyHeaders(headers, h, null, false);
copyHeaders(bodyPart, h, null, false);
return h;
}
项目:hermes
文件:SFRMMessage.java
/**
* Creates a new instance of SFRM Message.
*
* @param message
* the message as input stream.
* @throws SFRMMessageException
* if unable to construct from the given input stream.
*/
public SFRMMessage(InputStream message) throws SFRMMessageException {
try {
BufferedInputStream bis = new BufferedInputStream(message);
this.load(new InternetHeaders(bis), bis);
bis.close();
} catch (Exception e) {
throw new SFRMMessageException(
"Unable to construct SFRM message from input stream", e);
}
}
项目:hermes
文件:SFRMMessage.java
/**
* Gets the headers of this message.
*
* @return a copy of the headers of this message.
*/
public InternetHeaders getHeaders() {
InternetHeaders h = new InternetHeaders();
copyHeaders(headers, h, null, false);
copyHeaders(bodyPart, h, null, false);
return h;
}
项目:hermes
文件:AS2RequestAdaptor.java
/**
* processRequest
* @param request
* @param response
* @return String
* @throws RequestListenerException
* @see hk.hku.cecid.piazza.commons.servlet.http.HttpRequestListener#processRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public String processRequest(HttpServletRequest request,
HttpServletResponse response) throws RequestListenerException {
try {
Headers headers = new Headers(request, response);
InternetHeaders requestHeaders = headers.getInternetHeaders();
InputStream requestStream = request.getInputStream();
AS2Message requestMessage = new AS2Message(requestHeaders, requestStream);
if (requestMessage.getFromPartyID() == null || requestMessage.getToPartyID() == null) {
response.sendError(HttpURLConnection.HTTP_BAD_REQUEST, "Invalid AS2 Message");
return null;
}
AS2Request as2request = new AS2Request(request);
as2request.setMessage(requestMessage);
AS2Response as2response = new AS2Response(response);
processRequest(as2request, as2response);
AS2Message responseMessage = as2response.getMessage();
if (responseMessage == null) {
return null;
}
InternetHeaders responseHeaders = responseMessage.getHeaders();
headers.putInternetHeaders(responseHeaders);
InputStream contentStream= responseMessage.getContentStream();
OutputStream responseStream= response.getOutputStream();
IOHandler.pipe(contentStream, responseStream);
return null;
}
catch (Exception e) {
throw new RequestListenerException("Error in processing AS2 request", e);
}
}
项目:hermes
文件:DispositionNotification.java
public DispositionNotification() throws AS2MessageException {
multiPart = new MimeMultipart();
textPart = new MimeBodyPart();
reportPart = new MimeBodyPart();
reportValues = new InternetHeaders();
try {
multiPart.setSubType(CONTENT_SUBTYPE);
multiPart.addBodyPart(textPart);
multiPart.addBodyPart(reportPart);
}
catch (MessagingException e) {
throw new AS2MessageException("Unable to construct a new disposition notification", e);
}
}
项目:hermes
文件:DispositionNotification.java
private void parseMDN(MimeMultipart report) throws AS2MessageException {
try {
int reportCount = report.getCount();
for (int i = 0; i < reportCount; i++) {
MimeBodyPart reportsPart = (MimeBodyPart) report.getBodyPart(i);
if (reportsPart.isMimeType("text/plain")) {
setText(reportsPart.getContent().toString());
}
else if (reportsPart.isMimeType(AS2Header.CONTENT_TYPE_MESSAGE_DISPOSITION_NOTIFICATION)) {
InternetHeaders rptValues = new InternetHeaders(reportsPart
.getInputStream());
setReportValue(REPORTING_UA, rptValues.getHeader(
REPORTING_UA, ", "));
setOriginalMessageID(rptValues.getHeader(
ORIG_RECIPIENT, ", "));
setReportValue(FINAL_RECIPIENT, rptValues.getHeader(
FINAL_RECIPIENT, ", "));
setReportValue(ORIG_MESSAGE_ID, rptValues.getHeader(
ORIG_MESSAGE_ID, ", "));
setReportValue(DISPOSITION, rptValues.getHeader(
DISPOSITION, ", "));
setReportValue(RECEIVED_CONTENT_MIC, rptValues
.getHeader(RECEIVED_CONTENT_MIC, ", "));
}
}
}
catch (Exception e) {
throw new AS2MessageException("Error in parsing MDN", e);
}
}
项目:hermes
文件:AS2Message.java
/**
* Creates a new instance of AS2Message.
*/
public AS2Message() {
this.headers = new InternetHeaders();
this.bodyPart = new MimeBodyPart();
setHeader(AS2Header.SUBJECT, "AS2 Message");
setHeader(AS2Header.FROM, getDefaultEmailAddress());
setHeader(AS2Header.AS2_VERSION, "1.1");
setHeader(AS2Header.DATE, StringUtilities.toGMTString(new Date()));
setMessageID(generateID());
}
项目:hermes
文件:AS2Message.java
/**
* Creates a new instance of AS2Message.
*
* @param message the message as input stream.
* @throws AS2MessageException if unable to construct from the given input stream.
*/
public AS2Message(InputStream message) throws AS2MessageException {
try {
BufferedInputStream bis= new BufferedInputStream(message);
load(new InternetHeaders(bis), bis);
bis.close();
} catch (Exception e) {
throw new AS2MessageException(
"Unable to construct AS2 message from input stream", e);
}
}
项目:hermes
文件:AS2Message.java
/**
* Loads the given headers and content to this message.
*
* @param headers the message headers.
* @param content the message content.
* @throws MessagingException if unable to construct the mime body part.
* @throws IOException unable to read the content stream.
*/
private void load(InternetHeaders headers, InputStream content)
throws MessagingException, IOException {
InternetHeaders bodyHeaders = new InternetHeaders();
copyHeaders(headers, bodyHeaders, "(?i)(?s)content-.*", true);
this.headers = headers;
this.bodyPart = new MimeBodyPart(bodyHeaders, IOHandler
.readBytes(content));
}
项目:hermes
文件:AS2Message.java
/**
* Gets the headers of this message.
*
* @return a copy of the headers of this message.
*/
public InternetHeaders getHeaders() {
InternetHeaders h = new InternetHeaders();
copyHeaders(headers, h, null, false);
copyHeaders(bodyPart, h, null, false);
return h;
}
项目:raml-module-builder
文件:FileUploadsUtil.java
private static MimeMultipart split(byte[] pattern, byte[] input, int sizeLimit) {
MimeMultipart mmp = new MimeMultipart();
int start = 0;
int pos = Bytes.indexOf(input, pattern);
int size = input.length;
int entryCount = 0;
ByteBuffer buffer = ByteBuffer.wrap(input);
while(pos != -1 && start < size){
int end = pos + pattern.length;
if(entryCount != 0){
//dont add the boundary itself - which is what you have in the first iteration
buffer.position(start);
//not a copy but points to the buffer
//used for the indexOf functionality to keep checking
//further on in the buffer - current pos -> end of buffer
byte[] tmpBuffer = buffer.slice().array();
//set limit - now that limit is set re-slice to only get the needed
//area -
buffer.limit(end);
try {
MimeBodyPart mbp = new MimeBodyPart(new InternetHeaders(), buffer.slice().array());
mmp.addBodyPart(mbp);
} catch (MessagingException e) {
log.error(e.getMessage(), e);
}
pos = Bytes.indexOf(tmpBuffer, pattern);
}
entryCount++;
start = end;
}
return mmp;
}
项目:Camel
文件:MimeMultipartDataFormat.java
private void extractHeader(String headerMame, Message camelMessage, InternetHeaders headers) {
String h = camelMessage.getHeader(headerMame, String.class);
if (h != null) {
headers.addHeader(headerMame, h);
camelMessage.removeHeader(headerMame);
}
}
项目:gdata-java-client
文件:MediaBodyPart.java
public MediaBodyPart(InputStream is) throws MessagingException {
// Process the headers from the input stream
super(new InternetHeaders(is), null);
// Create a media stream source to read the remaining data, using the
// content type information from the headers.
mediaSource = new MediaStreamSource(is, getContentType());
initMediaDataHandler();
}
项目:gdata-java-client
文件:MediaBodyPart.java
public MediaBodyPart(InternetHeaders headers, byte [] content)
throws MessagingException {
super(headers, content);
// javax.mail.util.SharedByteArrayInputStream here.
String contentType = getContentType();
MediaStreamSource mediaStreamSource =
new MediaStreamSource(new ByteArrayInputStream(content), contentType);
String etag = getHeader(GDataProtocol.Header.ETAG, null);
if (etag != null) {
mediaStreamSource.setEtag(etag);
}
mediaSource = mediaStreamSource;
initMediaDataHandler();
}
项目:openhim-mediator-xds
文件:XDSbMimeProcessorActor.java
private Enumeration createCopyOfHeaders(BodyPart part) throws MessagingException {
Enumeration headers = part.getAllHeaders();
InternetHeaders internetHeaders = new InternetHeaders();
while (headers.hasMoreElements()) {
Header header = (Header) headers.nextElement();
internetHeaders.addHeader(header.getName(), header.getValue());
}
return internetHeaders.getAllHeaders();
}
项目:James
文件:MimeMessageWrapper.java
/**
* If we already parsed the headers then we simply return the updated ones.
* Otherwise we parse
*
* @see javax.mail.internet.MimeMessage#createInternetHeaders(java.io.InputStream)
*/
protected synchronized InternetHeaders createInternetHeaders(InputStream is) throws MessagingException {
/*
* This code is no more needed: see JAMES-570 and new tests
*
* InternetHeaders can be a bit awkward to work with due to its own
* internal handling of header order. This hack may not always be
* necessary, but for now we are trying to ensure that there is a
* Return-Path header, even if just a placeholder, so that later, e.g.,
* in LocalDelivery, when we call setHeader, it will remove any other
* Return-Path headers, and ensure that ours is on the top. addHeader
* handles header order, but not setHeader. This may change in future
* JavaMail. But if there are other Return-Path header values, let's
* drop our placeholder.
*
* MailHeaders newHeaders = new MailHeaders(new
* ByteArrayInputStream((f.RETURN_PATH + ": placeholder").getBytes()));
* newHeaders.setHeader(RFC2822Headers.RETURN_PATH, null);
* newHeaders.load(is); String[] returnPathHeaders =
* newHeaders.getHeader(RFC2822Headers.RETURN_PATH); if
* (returnPathHeaders.length > 1)
* newHeaders.setHeader(RFC2822Headers.RETURN_PATH,
* returnPathHeaders[1]);
*/
// Keep this: skip the headers from the stream
// we could put that code in the else and simple write an "header"
// skipping
// reader for the others.
MailHeaders newHeaders = new MailHeaders(is);
if (headers != null) {
return headers;
} else {
initialHeaderSize = newHeaders.getSize();
return newHeaders;
}
}
项目:James
文件:MimeMessageTest.java
protected MimeMessage getMultipartMessage() throws Exception {
MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
mmCreated.setSubject("test");
MimeMultipart mm = new MimeMultipart("alternative");
mm.addBodyPart(new MimeBodyPart(new InternetHeaders(new ByteArrayInputStream("X-header: test1\r\nContent-Type: text/plain; charset=Cp1252\r\n".getBytes())), "first part \u00F2\u00E0\u00F9".getBytes()));
mm.addBodyPart(new MimeBodyPart(new InternetHeaders(new ByteArrayInputStream("X-header: test2\r\nContent-Type: text/plain; charset=Cp1252\r\nContent-Transfer-Encoding: quoted-printable\r\n".getBytes())), "second part =E8=E8".getBytes()));
mmCreated.setContent(mm);
mmCreated.saveChanges();
return mmCreated;
}