Notice
Recent Posts
Recent Comments
준호씨의 블로그
javamail - eml 파싱하기. 메일 body 출력하기. 본문
반응형
JavaMail API 로 eml 파일 파싱하는 방법을 정리 해 본다.
간단히 요역하자면, FileInputStream 으로 파일 불러와서 MimeMessage 만들 때 인자로 넣어주면 된다.
다음 예제를 보자.
File emlFile = new File("src/main/resources/mail.eml");
Properties props = System.getProperties();
Session mailSession = Session.getDefaultInstance(props, null);
// parse eml file
InputStream inputStream = new FileInputStream(emlFile);
MimeMessage message = new MimeMessage(mailSession, inputStream);
System.out.println("Subject : " + message.getSubject());
System.out.println("From : " + message.getFrom()[0]);
System.out.println("--------------");
System.out.println("Body : " + message.getContent());
File 클래스로 File 인스턴스를 생성한다. 메일을 실제 발송 하지는 않지만 Property 도 만들고 세션도 만들어 두어야 한다. FileInputStream 에 File 인스턴스를 넣어서 InputStream 인스턴스를 만든다. 세션과 InputStream 을 이용하여 MimeMessage 클래스의 인스턴스를 생성한다. 그럼 끝이다.
메일 Body 를 Raw 데이터로 출력 하고 싶다면 다음과 같이 코드를 추가한다.
// Raw Data
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
message.writeTo(outputStream);
System.out.println("\nRaw data\n" + outputStream.toString());
ByteArrayOutputStream 을 생성하고 message 의 writeTo 로 outputStream 에 쓴다.그리고 outputStream 의 데이터를 toString 으로 출력하면 된다. 다음과 같이 나타나는 것을 확인 할 수 있다.
Delivered-To: junho85@gmail.com
Received: by 2002:ac8:130c:0:0:0:0:0 with SMTP id e12-v6csp2204149qtj;
Sun, 27 May 2018 23:24:10 -0700 (PDT)
X-Google-Smtp-Source: AB8JxZoJwGcd5gIMbfk8sGFq9oRhCv+bCgQNXh1hMfKtiFWAjrBzrrYWou5gcP2egjarlTv/Kef9
X-Received: by 2002:a62:9342:: with SMTP id b63-v6mr12334060pfe.130.1527488650719;
Sun, 27 May 2018 23:24:10 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1527488650; cv=none;
d=google.com; s=arc-20160816;
b=q3fOTpdcXd0wUtHXJOPgsFRho2yjUvtQCECZMhdGUkxkAjfF2hiUaf523Pvi+/F1VQ
0E4i9nYjXADtUyA9+yjbDO4ciVXW3NLig1taTkON6DXMCA3JEpSLPUP/1Vyz9mYEEXKy
0lMV8A4NleLU76Z27kNCIUFUzxEl+2/3glvncXRG8xSuKgF5zmy/Q4k3Ch2CHXg2lqn+
EN+w5SQnLr0jJ7N39OG8eH1IsMe5/6K2qvj6IriOESZ/7feBvgxlsFAchs6uP9rC6KhZ
ToCdODY6EvJYc6h2Bot98V6MMJj0z1NTyzk1l6/K+flaQ9m1K9vtecU6u7wloNabvbRf
SU+A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=content-transfer-encoding:mime-version:subject:message-id:to:from
:date:arc-authentication-results;
bh=7QQ02yH1C2QclUxNeK4GFuSO6GwcCJ2w09IDfkYnsGs=;
b=JAEhOEEzmujlMG2knu90tnlMn+i5WivaANIpEfjgYAYKdDmustW/NELeHlxRZEUYSh
0e7HhzFnvHNp1Tz+W+Zb2UOq6ldCDD0EMB59tnOAAsMnz2zsPSNJ5ZAifRf8Lg3LX6P0
rPsSVIlmH6Dvnpt8Sgix6SmhXe5wZEinyt1wPlt6m4RZJvN7ZeS1cFPASXehHq5cqt+W
kdujYMrW1MBpicE2HYd8eNLHXCiYAgkO74Vb6dZmTlzzHvE/Afj7JdN9IJONA4UmVF/d
ZCrgVNv8+mRJKf9uNlwFrVzSKMoFwilKjEIxVdfiRqX8kR0/v5U1d+KuXio+LaX/YyHx
s9vQ==
ARC-Authentication-Results: i=1; mx.google.com;
spf=softfail (google.com: domain of transitioning noreply@daum.net does not designate 211.56.96.51 as permitted sender) smtp.mailfrom=noreply@daum.net
Return-Path: <noreply@daum.net>
Received: from 172.26.117.203 ([211.56.96.51])
by mx.google.com with ESMTPS id t12-v6si23490468pgr.690.2018.05.27.23.24.09
for <junho85@gmail.com>
(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Sun, 27 May 2018 23:24:10 -0700 (PDT)
Received-SPF: softfail (google.com: domain of transitioning noreply@daum.net does not designate 211.56.96.51 as permitted sender) client-ip=211.56.96.51;
Authentication-Results: mx.google.com;
spf=softfail (google.com: domain of transitioning noreply@daum.net does not designate 211.56.96.51 as permitted sender) smtp.mailfrom=noreply@daum.net
Date: Mon, 28 May 2018 15:24:07 +0900 (KST)
From: noreply@daum.net
To: junho85@gmail.com
Message-ID: <1560911714.0.1527488647162@daum.net>
Subject: This is subject for gmail
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
This is body
반응형
'개발이야기 > 이메일시스템' 카테고리의 다른 글
java - javamail 로 이메일 발송하기. mail from 과 header from 을 서로 다르게 세팅하기 (0) | 2018.05.28 |
---|---|
java - javamail 로 이메일 발송하기 기본 예제 (0) | 2018.05.28 |
java - javamail 로 이메일 발송하기. TLS 발송 (0) | 2018.05.28 |
java - javamail 로 이메일 발송하기. rcpt to 와 header to 를 서로 다르게 세팅하기 (0) | 2018.05.28 |
c - smtp client library (0) | 2018.04.24 |
Comments