홈>
java를 사용하여 이메일 본문의 일부로 이미지를 보내야합니다 :-
따른 단계는 다음과 같습니다
이미지를 가져 와서 org.apache.commons.codec.binary.Base64를 사용하여 이미지를 인코딩하고 html에서 이미지 src 태그로 사용하십시오.
인코딩 된 이미지를 디코딩하고 메일러 API를 사용하여 전송하십시오.
일부 이미지가 메일러 API를 통과하고 이메일 본문에 표시되고 일부는 표시되지 않는 문제가 있습니다.
문제를 일으키는 이미지의 크기입니까?
감사와 안부 쿤단 사이 니
public static void main(String[] args) {
String htmlContent = readFile("c:\\temp\\imagenotsending.html");
String encodeHtmlContent = encodeStringToBase64(htmlContent);
System.out.println(encodeHtmlContent);
String decodeHtmlBody = decodeStringToBase64(encodeHtmlContent);
sendMailNew(decodeHtmlBody);
}
public static void sendMailNew(String body) {
String to = "to address";
// Sender's email ID needs to be mentioned
String from = "from address here";
// Assuming you are sending email from localhost
String host = "host here";
// Get system properties
Properties properties = System.getProperties();
// Setup mail server
properties.setProperty("host", host);
// Get the default Session object.
Session session = Session.getDefaultInstance(properties);
try {
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
message.setContent(body, "text/html; charset=utf-8");
// Set From: header field of the header.
message.setFrom(new InternetAddress(from));
// Set To: header field of the header.
message.addRecipient(Message.RecipientType.TO, new InternetAddress(
to));
// Set Subject: header field
message.setSubject("This is the Subject Line!");
// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException mex) {
mex.printStackTrace();
}
}
public static String encodeStringToBase64(String aString) {
byte[] encodedBytes = Base64.encodeBase64(aString.getBytes());
return new String(encodedBytes);
}
public static String decodeStringToBase64(String aString) {
byte[] decodedBytes = Base64.decodeBase64(aString.getBytes());
return new String(decodedBytes);
}
아래와 같은 HTML 파일 :-
<html>
<head>
<title>Test</title>
</head>
<body>
<img src="data:image/png;base64,iVBORw0KGg.......rkJggg==">
</body>
</html>
아래 이미지를 전송하지 않는 Base 64 인코딩 아래 이미지의 Base 64 인코딩이 전송 중입니다
- 답변 # 1
관련 자료
- reactjs - react-simple-file-upload를 사용하여 이미지를 표시하는 데 문제가 있습니다
- html 및 css를 사용하여 div의 텍스트 옆에 로고 이미지 추가
- 문서 A3 형식 및 가로 방향 인 경우 C #을 사용하여 Word 파일 페이지를 PNG 이미지로 변환하는 방법은 무엇입니까?
- OpenCV 및 Python에서 범위 슬라이더 (트랙 바)를 사용하여 마스크 이미지 만들기
- javascript - webhook embed에서 base64 이미지를 사용하는 discordjs
- 기존 CNN을 사용한 주석을 지원하는 이미지 주석 도구
- Using PHP imageftbbox - php imageftbbox 사용 - 이미지 크기를 글꼴 크기 출력으로 조정 하시겠습니까?
- python - ØMQ를 사용하여 TCP 소켓을 통해 PNG 이미지를 보내려면 어떻게해야합니까?
- windows 8.1 - Rufus를 사용하여 내 pendrive에서 수행 한 이미지 굽기를 어떻게 되돌릴 수 있습니까?
- HTML CSS - html css - css를 사용하여 이미지로 클래스를 정의 할 수 있습니까?
- c# - Opencv를 사용하여 이미지를로드하고 C ++ dll을 통해 Unity에 전달하려면 어떻게해야합니까?
- datetime - 파이썬에서 PIL을 사용하여 이미지에 텍스트를 중앙에 배치하고 for 또는 while 루프에서 다른 이름으로 이미지를 저장하려면 어떻게해야합니까?
- web scraping - 수프를 사용하여 이미지 긁기
- javascript - 캔버스를 사용하여 이미지를 바둑판 식으로 배열하는 가장 효율적인 방법은 무엇입니까?
- html - 섹션을 사용하여 배경 이미지를 다른 이미지 아래에 배치하는 방법은 무엇입니까?
- c - 잘받지 못하는 소켓을 통해 이미지 보내기
- css - requirecontext를 사용하여 반응 js에 이미지가 표시되지 않음
- javascript - Fetch를 사용하여 React에서 ID가 짝수 인 각 앨범에서 첫 번째 이미지를 얻으려면 어떻게해야합니까?
- android - rxJava를 사용하여 AWS 서버에 여러 이미지 업로드
- reactjs - Reactjs의 데이터베이스에서 가져온 이미지 경로를 사용하여 이미지를 표시하는 방법
메일 본문에 base64 이미지를 보내려고합니다. 일부 메일 에이전트가이를 지원하지 않는다는 사실과 관련이있을 수 있습니다.
여기에서 볼 수 있습니다 : HTML 이메일로 base64 이미지 보내기
기본적으로 메일 본문에 이미지를 보내는 더 좋은 방법은 cid 및 image를 첨부 파일로 사용하는 것입니다 (또한 모든 곳에서 작동하지 않음).
메일에 이미지를 추가하는 다른 방법과 장단점을 설명하는 좋은 기사가 있습니다. https://sendgrid.com/blog/embedding-images-emails-facts/