电子邮件MIME格式的嵌入式图像

时间:2019-08-01 20:13:10

标签: java email mime-types content-type mime

我正在将嵌入式图像添加到电子邮件中。我的哑剧正确吗?有人可以检查吗?我是新来的。我想念什么吗?

如果mime错误,可以有人指导吗?

我不是内联图像应使用哪种内容类型。

是多部分/相关的还是多部分/混合的。有人可以帮助我查看和修复。

我早些时候尝试过,由于某些mime标头更改,MTA电子邮件服务器拒绝了信息。

如果有人能够提供帮助,那就太好了。

谢谢。

Date: Thu, 01 Aug 2019 12:56:57 -0700
MIME-Version: 1.0
From: testing1 <test@xxx.com>
To: name1 <name1@gmail.com>, name2 <name2@gmail.com>
Cc: ccemail <xxxx@gmail.com>
Subject: Hi...Welcome to test
Content-Type: multipart/mixed;
  boundary="------------Boundary-00=_U2PK61S9LBFTGAWW28T1"

--------------Boundary-00=_U2PK61S9LBFTGAWW28T1
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64

PGh0bWw+PGhlYWQ+PHRpdGxlPkEgU2ltcGxlIEhUTUwgRG9jdW1lbnQKPC90aXRsZT48L2hl
YWQ+PGJvZHk+PHA+VGhpcyBpcyBhIHZlcnkgc2ltcGxlIEhUTUwgZG9jdW1lbnQ8L3A+PHA+
SXQgb25seSBoYXMgdHdvIHBhcmFncmFwaHM8L3A+PC9ib2R5PjxpbWcgYWx0PSJQbGFjZWhv
bGRlciIgc3JjPSJjaWQ6cHVycGxlLWxpbmUxLWM4NTgzOC5qcGciIHN0eWxlPSJvdXRsaW5l
OiBub25lOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGRpc3BsYXk6IGJsb2NrO2NsZWFyOm5v
bmU7ZmxvYXQ6bm9uZTtoZWlnaHQ6YXV0bzttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdo
dDphdXRvO3dpZHRoOjEwMD0lO21heC13aWR0aDo3MDBweDt3aWR0aDo3MDBweDsiIGFsaWdu
PSJtaWRkbGUiPjwvaHRtbD4=

--------------Boundary-00=_U2PK61S9LBFTGAWW28T1
Content-Disposition: INLINE; filename=purple-line1-c85838.jpg
Content-ID: <purple-line1-c85838.jpg>
Content-Type: image/jpeg/; name=purple-line1-c85838.jpg
Content-Transfer-Encoding: BASE64

/9j/4AAQSkZJRgABAQEAYABgAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJ
SkcgSlBFRyB2ODApLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwL
CwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkM
CwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIy/8AAEQgAAQLQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEV
UtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0AAAAAGD/2gAMAwEBAhEDEQAAAIpcVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AA//2gAIAQIAAQUANf/aAAgBAwABBQA1/9oACAEBAAEFADX/2gAIAQICBj8ANf/aAAgBAwIG
PwA1/9oACAEBAQY/ADX/2Q==

--------------Boundary-00=_U2PK61S9LBFTGAWW28T1--

这是我的代码,其中添加了MIME。

 private void extractedAttachments(Headers headers, Body body, BodyPart memoPart) {
        int i;

        if (mAttachments.length == 0 && mImages.length == 0) {

            Headers phdrs = memoPart.headers();
            int numFields = phdrs.numFields();
            for (i = 0; i < numFields; ++i) {


           Field field = phdrs.fieldAt(i);
                    headers.addField(field);
                }
                body.setString(memoPart.body().string());
                // Copy the body from the memo part to the message
    //            body.addBodyPart(memoPart);
            }else if(mImages.length > 0) {

                headers.contentType().setType(EmailMimeConstants.MULTI_PART.toString());
                headers.contentType().setSubtype(EmailMimeConstants.MIXED.toString());
                headers.contentType().createBoundary(0);

                 // Add the memo part as the first part

            body.addBodyPart(memoPart);

            for (i = 0; i < mImages.length; ++i) {
                Images image = mImages[i];
                BodyPart part1 = new BodyPart();
            part1.headers().contentDisposition().fromEnum(DispositionType.INLINE);
                part1.headers().contentDisposition().setFilename(purple-line1-c85838.jpg);
                ByteString ccid = new ByteString("<purple-line1-c85838.jpg>");
                part1.headers().contentId().setString(ccid);
                part1.headers().contentType().setType(image.type());
                part1.headers().contentType().setName(image.fileName());
  part1.headers().contentTransferEncoding().fromEnum(TransferEncodingType.BASE64);
                ByteString c1 = new ByteString(image.content());
                part1.body().setString(c1);
                body.addBodyPart(part1);
            }

        }


        // If this is a multipart message...

        else {

            // Create a top-level multipart/mixed part

            headers.contentType().setType(EmailMimeConstants.MULTI_PART.toString());
            headers.contentType().setSubtype(EmailMimeConstants.MIXED.toString());
            headers.contentType().createBoundary(0);

            // Add the memo part as the first part

            body.addBodyPart(memoPart);

            // Add the attachments as additional body parts

            for (i=0; i < mAttachments.length; ++i) {
                Attachment attach = mAttachments[i];
                BodyPart part = new BodyPart();
                Headers partHeaders = part.headers();
                partHeaders.contentTransferEncoding().fromEnum(TransferEncodingType.BASE64);
                partHeaders.contentType().setType(attach.type());
                partHeaders.contentType().setSubtype(attach.subtype());
                partHeaders.contentType().setName(attach.fileName());
                partHeaders.contentDisposition().fromEnum(DispositionType.ATTACHMENT);
                partHeaders.contentDisposition().setFilename(attach.fileName());
                ByteString content = new Base64Encoder().encode(attach.content());
                part.body().setString(content);
                body.addBodyPart(part);
            }
        }
    }

0 个答案:

没有答案
相关问题