이메일 내용 만들기 및 설정
새 이메일 메시지 만들기
Aspose.Email for Java는 개발자가 처음부터 MIME(Multipurpose Internet Mail Extensions) 메시지를 만들 수 있도록 합니다. 이를 위한 Aspose.Email for Java API의 주요 클래스는 MailMessage 클래스. 이 항목에서는 Aspose.Email for Java를 사용하여 EML, MSG 및 MTH 파일 형식의 이메일 메시지를 만드는 데 필요한 단계들을 설명합니다.
처음부터 이메일 메시지를 만들려면:
- MailMessage 클래스를 인스턴스화합니다.
- 사용하여 메시지 제목을 설정합니다. setSubject() 메서드.
- 사용하여 메시지 본문을 설정합니다. setHtmlBody() 메서드.
- 사용하여 이메일 발신자를 설정합니다. setFrom() 메서드.
- 사용하여 TO 필드에 받는 사람을 설정합니다. getTo().add() 메서드.
- 사용하여 CC 필드에 받는 사람을 설정합니다. getCC().add() 메서드.
- 다음을 호출합니다. Save() MSG, EML 및 MHT 형식으로 메시지 파일을 디스크에 저장하는 메서드.
다중 수신자 지정
다음은 MailMessage 이메일 메시지를 나타냅니다. MailMessage 클래스의 인스턴스는 SMTP 서버를 통해 전송되는 이메일 메시지를 구성하는 데 사용됩니다. SmtpClient 클래스. 이 항목에서는 하나 이상의 이메일 주소를 지정하는 방법을 보여줍니다. MailMessage 클래스를 사용하여 이메일 주소를 지정할 수 있습니다. MailMessage 클래스에서 사용되는 이메일 주소는 다음과 같습니다:
- To - 수신자 주소는 ‘To’ 필드에 지정합니다. ‘To’ 필드의 수신자는 메시지의 주요 대상이며, 여러 수신자 주소를 지정할 수 있습니다.
- Cc - CC는 "Carbon Copy"(복사) 또는 "Courtesy Copy"(예의 복사)를 의미하며, 이메일을 볼 필요는 있지만 반드시 행동을 취해야 하는 것은 아닌 수신자를 추가할 수 있습니다. 예를 들어 관리자는 물론 대화 내용을 알아야 하는 팀 구성원 등이 있습니다. Aspose.Email를 사용하면 코드에서 CC 주소를 지정할 수 있습니다. 이렇게 하면 자동 이메일이나 특정 주소로 보내는 모든 이메일을 해당 담당자에게 복사할 수 있습니다.
- Bcc - Bcc(Blind Carbon Copy)는 다른 수신자에게 보이지 않게 이메일을 보낼 수 있게 합니다. CC가 주요 수신자가 보는 이메일 정보에 표시되는 반면, Bcc는 표시되지 않습니다. 숨겨진 알림용입니다.
이메일 메시지에 여러 이메일 주소를 지정하려면 다음 단계를 따르세요:
- MailMessage 클래스를 인스턴스화합니다.
- MailMessage 인스턴스를 사용하여 From 및 여러 To, Cc, Bcc 주소를 지정합니다.
- SmtpClient 클래스를 인스턴스화하고 Send 메서드를 사용하여 이메일을 보냅니다.
아래 코드 샘플은 여러 To, CC 및 BCC 주소를 지정하는 방법을 보여줍니다.
이메일 주소를 친숙한 이름으로 변경
아래 프로그래밍 예제는 이메일 메시지에서 이메일 주소를 친숙한 이름으로 변경하는 방법을 보여줍니다. 친숙한 이름은 이메일 주소보다 사람에게 더 친근한 이름이며, 예를 들어 js346@domain.com 대신 John Smith와 같이 사용할 수 있습니다. 이메일을 보낼 때 친숙한 이름을 이메일 주소에 연결할 수 있습니다. MailMessage 클래스 생성자.
이메일 메시지에서 이메일 주소를 친숙한 이름으로 변경하려면 다음 단계를 따르세요:
- MailMessage 클래스 인스턴스를 만들고 To 및 From 필드에 친숙한 이름과 함께 이메일 주소를 지정합니다.
- MailMessage 인스턴스에서 MailMessage 클래스 생성자를 호출하여 Cc 및 Bcc 이메일 주소와 친숙한 이름을 지정합니다.
- SmtpClient 클래스를 인스턴스화하고 Send 메서드를 사용하여 이메일을 보냅니다.
다음 코드 스니펫은 이메일 주소에 대한 이름을 표시하는 방법을 보여줍니다.
메일 본문 설정
다음은 MailMessage 클래스는 이메일 메시지를 나타냅니다. MailMessage 클래스의 인스턴스는 SMTP 서버를 통해 전달되는 이메일 메시지를 구성하는 데 사용됩니다. SmtpClient 클래스. 메일 본문은 MailMessage 클래스를 사용하여 지정할 수 있습니다. 이메일 본문도 다음을 사용하여 지정할 수 있습니다. setHtmlBody MailMessage의 메서드.
뿐만 아니라 HtmlBody, Aspose.Email에는 메일 본문과 관련된 또 다른 메서드가 있습니다:
- isBodyHtml: 본문이 HTML인지 일반 텍스트인지 사용자에게 알려줍니다.
이 항목에서는 HTML 본문 텍스트를 정의하고 대체 텍스트를 설정하는 방법을 보여줍니다.
HTML 본문 설정
HtmlBody 메시지 본문의 HTML 내용을 지정하는 데 사용됩니다. HtmlBody는 태그 사이에 있어야 합니다. 다음 코드 스니펫은 HTML 본문을 설정하는 방법을 보여줍니다.
대체 텍스트 설정
다음 사용 AlternateView 다른 형식으로 이메일 메시지 사본을 지정하는 클래스입니다. 예를 들어 HTML로 메시지를 보낼 경우, HTML을 표시할 수 없는 이메일 클라이언트를 사용하는 수신자를 위해 일반 텍스트 버전을 제공하고 싶을 수 있습니다. 이 클래스에는 두 개의 속성이 있습니다, LinkedResources 및 BaseUri, 이는 이메일 내용 내 URL을 해결하는 데 사용됩니다.
- LinkedResources는 LinkedResources 객체들의 컬렉션입니다. 렌더링 시 이메일 내용 내 URL은 먼저 LinkedResources 컬렉션에 있는 각 객체의 Content Link URL과 매칭되어 해결됩니다.
- BaseUri는 메일 리더가 본문 내 상대 URL을 해결하고, LinkedResources 컬렉션의 상대 Content Link URL을 해결하는 데 사용됩니다.
다음 코드 스니펫은 대체 텍스트를 설정하는 방법을 보여줍니다.
메일 본문 인코딩 지정
콘텐츠 유형은 이메일 내용 형식, 즉 문자 집합을 정의합니다. 예를 들어 java.nio.Charset에서 제공하는 일반적인 문자 집합은 다음과 같습니다:
- US-ASCII - 7비트 ASCII, 일명 ISO646-US, 유니코드 문자 집합의 기본 라틴 블록
- ISO-8859-1 - ISO 라틴 알파벳 1, 일명 ISO-LATIN-1
- UTF-8 - 8비트 UCS 변환 형식
- UTF-16BE - 16비트 UCS 변환 형식, 빅 엔디안 바이트 순서
- UTF-16LE - 16비트 UCS 변환 형식, 리틀 엔디안 바이트 순서
- UTF-16 - 16비트 UCS 변환 형식, 옵션 바이트 순서 표시(BOM)로 바이트 순서를 식별
Aspose.Email은 다음을 사용합니다: BodyEncoding 메일 본문 인코딩을 지정하기 위한 MailMessage 클래스의 속성입니다. 이메일 메시지 본문을 인코딩하려면 아래 단계에 따르세요:
- MailMessage 클래스를 인스턴스화합니다.
- MailMessage 인스턴스에서 발신자, 수신자 및 HTML 본문 이메일을 지정합니다.
- BodyEncoding 속성 값을 지정합니다.
- 다음의 인스턴스를 생성합니다. SmtpClient 클래스와 Send 메서드를 사용하여 이메일을 보냅니다.
MailMessage 기능
다음은 MailMessage 클래스는 이메일 메시지의 내용을 나타냅니다. MailMessage 클래스의 인스턴스는 SMTP 서버를 통해 전달되는 이메일 메시지를 구성하는 데 사용됩니다. SmtpClient 클래스. 이 문서에서는 다음 이메일 기능을 제어하기 위해 MailMessage 클래스 유틸리티 기능을 활용하는 방법을 보여줍니다:
- 날짜 및 시간 - MailMessage 클래스를 통해 setDate 이메일의 날짜와 시간을 설정하는 메서드.
- 메시지 우선순위 - MailPriority 클래스는 이메일 전송 시 우선 순위 수준을 지정합니다. 낮음, 보통, 높음이 있으며, 우선 순위는 전송 속도와 전달에 영향을 줍니다.
- 메시지 민감도 - MailSensitivity 클래스는 다섯 단계의 민감도를 지정합니다.
- 배달 알림 - 배달 알림은 발신자에게 이메일이 수신자의 받은편지함에 전달되었음을 알려줍니다.
기본적으로 날짜와 시간은 Microsoft Outlook에 표시되는 대로 메시지가 실제로 전송된 날짜와 시간입니다. 하지만 실제 이메일 전달 시간은 SMTP 서버가 메일 헤더에 추가합니다. 예를 들어 아래는 일반적인 메일 헤더이며, Date 필드는 MailMessage.setDate를 사용해 설정되었습니다.
아래 코드 스니펫은 위에서 논의한 각 기능을 어떻게 사용할 수 있는지 보여줍니다.
수신 확인 요청
아래 프로그래밍 샘플은 수신 확인을 요청하는 방법을 보여줍니다. MailMessage 클래스 DeliveryNotificationOptions 열거형 속성은 설명합니다 배달 알림 옵션 이메일에 대해. 이메일을 보낸 후 수신 확인 요청을 하려면 다음 단계를 따르세요:
- MailMessage 클래스를 인스턴스화합니다.
- MailMessage 인스턴스에서 이메일의 발신자, 수신자 및 HTML 본문을 지정합니다.
- 다른 MailMessage 인스턴스에서 DeliveryNotificationOptions를 지정합니다.
- SmtpClient 클래스를 인스턴스화하고 Send 메서드를 사용해 이메일을 보냅니다.
읽음 확인 요청이 항상 허용되지 않을 수 있는 이유는:
- 메일 클라이언트가 해당 기능을 구현하지 않을 수 있습니다.
- 최종 사용자는 해당 기능을 비활성화했을 수 있습니다.
- 최종 사용자는 이를 전송하지 않을 수 있습니다.
다음 코드 스니펫은 읽음 확인 요청 방법을 보여줍니다.
이메일 헤더 설정
이메일 헤더는 인터넷 표준을 나타내며 RFC에서 인터넷 이메일 메시지에 포함되는 헤더 필드를 정의합니다. 이메일 헤더는 다음을 사용하여 지정할 수 있습니다. MailMessage 클래스. 일반 헤더 유형은 여기에서 정의됩니다. HeaderType 클래스. 이는 일반 열거형처럼 동작하는 sealed 클래스입니다.
일반적으로 이메일 헤더에는 다음 필드가 포함됩니다:
- To: 수신자 주소는 To 필드에 지정할 수 있습니다. To 필드 수신자는 메시지의 주요 대상이며, 수신자 주소는 하나 이상일 수 있습니다.
- From: 이 필드는 메시지 발신자의 이메일 주소를 표시합니다.
- Cc: 사용자가 메시지를 "Carbon Copy" 혹은 "Courtesy Copy" 로 보낼 수 있게 합니다. 즉, 수신자는 회신하거나 조치를 취할 필요가 없으며, 보통 감독자에게 알리기 위해 사용됩니다.
- Bcc: Blind Carbon Copy의 약자로, 수신자 목록 전체가 보이지 않게 메시지를 여러 수신자에게 보내는 방식을 의미합니다. 숨겨진 알림을 위해 사용됩니다.
- ReplyTo: 이 헤더 필드는 발신자가 회신을 받고자 하는 주소를 나타냅니다.
- Subject: 제목, 헤딩, 주제. 일반적으로 다른 메시지에 회신하거나 댓글을 달 때 스레드 표시기로 사용됩니다.
- Date: 이 헤더는 날짜(및 시간)를 지정합니다. 일반적으로 메시지가 작성되고 전송된 날짜입니다.
- XMailer: 발신자의 클라이언트 소프트웨어에 대한 정보입니다. 예: X-Mailer: Aspose.Email XMailer는 메일 클라이언트에서 사용됩니다. 클라이언트마다 XMailer 값이 다릅니다. MS Outlook의 XMailer 값은 Microsoft Office Outlook, Build 11.0.5510입니다. 이는 이메일 수신자나 읽는 프로그램에 의해 무시됩니다.
일반적으로 이메일 헤더는 다음과 같이 보입니다:
Reply-To: reply@reply.com
From: sender@sender.com
To: guangzhou@guangzhoo.com
Subject: test mail
Date: 6 Mar 2006 8:2:2 +0800
X-Mailer: Aspose.Email
이메일 헤더를 사용자 정의하려면 다음 단계를 따르세요:
- 다음의 인스턴스를 생성합니다. MailMessage 클래스.
- MailMessage 클래스 인스턴스를 사용하여 To, From, CC, Bcc, ReplyTo, Subject, Date 및 XMailer를 지정합니다.
- 다음의 인스턴스를 생성합니다. MimeHeader 클래스와 비밀 헤더를 지정합니다.
- MailMessage 인스턴스에 비밀 헤더를 추가합니다.
아래 제공된 코드에서 이메일 헤더를 사용자 정의했습니다.
위 코드 스니펫은 다음 형식의 이메일 헤더를 생성합니다. 이는 Microsoft Outlook에서 MsgHeaders.msg 파일을 열고 속성을 확인하면 확인할 수 있습니다.
Reply-To: reply@reply.com
From: sender@sender.com
To: receiver1@receiver.com
CC: receiver2@receiver.com
BCC: receiver3@receiver.com
Subject: test mail
Date: 6 Mar 2006 8:2:2 +0800
X-Mailer: Aspose.Email
secret-header: mystery
특정 위치에 헤더 삽입
다음은 추가 HeadersCollection의 메서드는 헤더를 컬렉션 끝에 삽입합니다. 그러나 특정 위치에 헤더를 삽입해야 할 경우가 있습니다. 이 경우 Add 메서드는 도움이 되지 않으며, 이를 위해서는 Insert HeadersCollection의 메서드입니다. 컬렉션에 동일한 이름의 헤더가 포함되어 있으면 이 헤더는 동일한 이름의 다른 헤더 앞에 삽입됩니다. 아래는 Insert 메서드 서명과 사용 예시 코드입니다.
Method Signature
HeaderCollection.insert(String name, String value)
이메일에 사용자 정의 헤더 추가
아래 프로그래밍 샘플은 이메일 메시지에 사용자 정의 헤더를 지정하는 방법을 보여줍니다. 이메일 헤더는 MailMessage 클래스를 사용하여 지정할 수 있습니다. 이메일 메시지에 사용자 정의 헤더를 지정하려면 다음 단계를 따르세요:
- MailMessage 클래스를 인스턴스화합니다.
- MailMessage 인스턴스를 사용하여 to, from 및 subject 값을 지정합니다.
- 비밀 헤더를 MailMessage 인스턴스에 추가합니다.
- SmtpClient 클래스를 인스턴스화하고 Send 메서드를 사용하여 이메일을 보냅니다.
다음 코드 스니펫은 이메일에 사용자 정의 헤더를 추가하는 방법을 보여줍니다.
DKIM으로 이메일 서명
Aspose.Email은 DKIM(DomainKeys Identified Mail)으로 이메일에 서명할 수 있게 합니다. 이를 통해 조직은 전송 중인 메시지에 대한 책임을 질 수 있습니다 (DKIM에 대하여). DKIM은 수신자가 검증할 수 있는 디지털 서명을 이메일 메시지 헤더에 추가합니다. 발신자의 공개 키를 통해 수신자는 서명이 메시지 내용과 일치하는지 확인할 수 있습니다. MailMessage 클래스 dKIMSign 메서드는 메시지 서명을 위한 암호화 및 서명 정보를 설정하는 데 사용됩니다. 아래 코드 스니펫은 DKIM으로 이메일에 서명하는 방법을 보여줍니다.
메일 병합 수행
메일 병합을 사용하면 유사한 이메일 메시지를 일괄 생성 및 전송할 수 있습니다. 이메일 내용은 동일하지만, 받는 사람의 연락처 정보(이름, 성, 회사 등)를 활용해 개인화할 수 있습니다.
|
| | :- | |그림: 메일 병합 작동 방식 설명|
Aspose.Email으로 메일 병합을 수행하려면 다음 단계를 따르세요:
- signature 라는 이름의 함수를 생성합니다
- 다음의 인스턴스를 생성합니다. MailMessage 클래스.
- 보낸 사람, 받는 사람, 제목 및 본문을 지정합니다.
- 이메일 끝에 서명을 생성합니다.
- 다음의 인스턴스를 생성합니다. TemplateRoutine 클래스와 이를 전달합니다 MailMessage 인스턴스.
- 다음에서 서명을 가져옵니다 TemplateRoutine 인스턴스.
- 다음의 인스턴스를 생성합니다. DataTable 클래스.
- DataTable 클래스에 Receipt, FirstName 및 LastName 열을 데이터 소스로 추가합니다
- 다음의 인스턴스를 생성합니다. DataRow 클래스
- DataRow 객체에서 영수증 주소와 이름(성, 이름)을 지정합니다
- 다음의 인스턴스를 생성합니다. MailMessageCollection 클래스
- 지정하세요 TemplateRoutine 및 DataTable 인스턴스를 MailMessageCollection 인스턴스.
- 다음의 인스턴스를 생성합니다. SmtpClient 클래스를 사용하고 서버, 포트, 사용자 이름 및 비밀번호를 지정합니다
- 다음으로 이메일 전송: SmtpClient BulkSendAsync 클래스 메서드
아래 코드는 세 명이 한 명에게 이메일을 보냅니다.