我正在将嵌入式图像添加到电子邮件中。我的哑剧正确吗?有人可以检查吗?我是新来的。我想念什么吗?
如果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);
}
}
}