Commons-Email 간단한 자습서

6209 단어 commons-email
1: Quick Start
SimpleEmail로 메일 보내기

java.lang.Object
org.apache.commons.mail.Email
org.apache.commons.mail.SimpleEmail

SimpleEmail email = new SimpleEmail();
email.setHostName("mail.4ya.cn");
email.setAuthentication("<username>","<password>")
email.addTo("[email protected]", "martin");
email.setFrom("[email protected]", "martin");
email.setSubject(" ");
email.setMsg(" ");
email.send();

코드에 있는 글자의 뜻처럼 간단하다.
1: Simple Email 대상 만들기 2: 메시지를 보내는 smtp 서버를 설정합니다. 설정이 없으면 시스템 변수에서 메일을 찾습니다.host 값.3: smtp 사용자 및 비밀번호 설정 4: 받는 사람 5: 보내는 사람 6: 테마 7: 내용 8: 보내는 사람
2: 첨부된 메일 보내기
우리는 본 컴퓨터의 첨부 파일을 보낼 수 있습니다. 물론 우리는 본 컴퓨터가 아닌 첨부 파일을 보낼 수도 있습니다. 만약에 인터넷에 존재하는 첨부 파일의 URL을 보내면 메일이 발송될 때 자동으로 다운로드되어 첨부 파일에 추가됩니다.
 
 1:) :
EmailAttachment attachment = new EmailAttachment();
attachment.setPath("test/test.rar");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("python resource");
attachment.setName("resource");

   2:) 
EmailAttachment attachment = new EmailAttachment();
attachment.setURL(new URL("http://www.smilinglibrary.org/sldoc/pics/index03.jpg"));
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription(" ");
attachment.setName(" ");


next, 
MultiPartEmail email = new MultiPartEmail();
email.setHostName("mail.4ya.cn");
email.setAuthentication("<username>","<password>")
email.addTo("[email protected]", "martin");
email.setFrom("[email protected]", "martin");
email.setSubject(" ");
email.setMsg(" ");

// 
email.attach(attachment);

// 
email.send();

 , EmailAttachement, 
email.attach(attachment1)
email.attach(attachment2)

3: html 형식의 메일 보내기
 HtmlEmail Html :

java.lang.Object
org.apache.commons.mail.Email
org.apache.commons.mail.MultiPartEmail
org.apache.commons.mail.HtmlEmail


 :
1//HtmlEmail!
HtmlEmail email = new HtmlEmail();
email.setHostName("mail.4ya.cn");
email.setAuthentication("<username>","<password>")
email.addTo("[email protected]"martin");
email.setFrom("[email protected]"martin");
email.setSubject(" : html ");
 
// embed the image and get the content id
//  :embed  :cid:xxx url
URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
String cid = email.embed(url, "Apache logo");

/**
set the html message
 HtmlEmail extends Email , setMsg(), , setMsg(), setHtmlMsg  setTextMsg 
**/
email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");

// set the alternative message
email.setTextMsg("Your email client does not support HTML messages");

//set mail
email.send();

마지막
더 복잡한authenticator가 필요하다면javax를 확장할 수 있습니다.mail.Authenticator, 당신의 물건을 실현하고 이메일을 호출합니다.setAuthenticator(javax.mail.Authenticator newAuthenticator)
이 점은 jakarta도 했습니다. default Authenticator를 제공해 주었습니다.
java.lang.Object
javax.mail.Authenticator
org.apache.commons.mail.DefaultAuthenticator
이 방법을 덮어쓰고 당신의 동동o_o
protected javax.mail.PasswordAuthentication getPasswordAuthentication()
겸사겸사 다시 한 번 정리하자면, 친구가 토론한 jakartacommons 이메일에 문제가 생겼습니다.
1: SimpleEmail을 통한 중국어 컨텐츠 오류 문제
SimpleEmail 코드는 다음과 같습니다.
public class SimpleEmail extends Email {
    /**
     * Set the content of the mail
     *
     * @param msg A String.
     * @return An Email.
     * @throws EmailException see javax.mail.internet.MimeBodyPart
     *                        for definitions
     * @since 1.0
     */
    public Email setMsg(String msg) throws EmailException {
        if (EmailUtils.isEmpty(msg)) {
            throw new EmailException("Invalid message supplied");
        }
        setContent(msg, Email.TEXT_PLAIN);
        return this;
    }
}

기본적으로,
1public static final String TEXT_PLAIN = "text/plain";
인코딩이 지정되지 않았습니다.
SimpleEmail을 통해 보내는 경우 코드를 지정해야 합니다: WaterYe@ITO설명
 
1email.setContent("테스트 메일", "text/plain;charset=GBK"),
2: 첨부 파일의 중국어 이름 부호에 대한 질문:
MimeUtility 필요
그 이유는 MIME의 상응하는 규범(RFC2047 등)에서 첨부 파일 제목이 US-ASCII 문자이어야 한다는 것을 설명하기 때문에 중국어 제목의 첨부 파일을 보낼 때 US-ASCII 문자로 인코딩해야 하는데 두 가지 인코딩 방식이 있다. B(BASE64), Q(Quoted-Printable), 이런 방법은 MimeUtility에서
모두 봉인되었기 때문에 첨부 파일을 보낼 때 다음과 같이 사용합니다.

1MimeUtility.encodeText(filename));


        EmailAttachment attachment = new EmailAttachment();
        attachment.setPath("c:\\ .txt");
        attachment.setDisposition(EmailAttachment.ATTACHMENT);
        attachment.setDescription(" ");
         
           //
        attachment.setName(MimeUtility.encodeText(" .txt"));

         MultiPartEmail email = new MultiPartEmail();
        email.setHostName("192.168.0.3");
        email.setAuthentication("martin.xus", "1234");
        email.addTo("[email protected]", "martin");
        email.setFrom("[email protected]", "martin");

        email.setSubject(" ");
        email.setMsg(" ");
        // 
        email.attach(attachment);
        // 
        email.send();


end
---------------------------------------------------------------------------------

좋은 웹페이지 즐겨찾기