1. 먼저 프로젝트에 jar 패키지를 가져옵니다. mail-1.4.4.jar(다른 메일박스를 보내기 위해 qq 및 163 메일박스 구현(이 경우에는 한 가지 유형만 보여줍니다))
2. 코드는 다음과 같습니다
public class TestDemo1 { static String SSL_EMAIL = "javax.net.ssl.SSLSocketFactory"; //需要传的值都在main方法调用的sendmail里传! public static void main(String[] args) { String s = sendmail(username, pass, from, to, subject, content); System.out.println(s); } /** * * @param username 发件人邮件的用户名 * @param pass 发件人邮件的密码(此密码一定要是授权码 授权码:在发件人邮箱内开启smtp/pop3协议所获得的授权码) * @param from 发件人邮箱 * @param to 收件人邮箱 * @param subject 邮件标题 * @param content 邮件内容 * @return */ public static String sendmail(final String username, final String pass, String from, String to, String subject, String content) { //Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); //设置系统参数 Properties props = System.getProperties(); props.setProperty("mail.smtp.socketFactory.class", SSL_EMAIL); props.setProperty("mail.smtp.socketFactory.fallback", "true"); props.setProperty("mail.store.protocol", "smtp"); props.setProperty("mail.smtp.host", "smtp.qq.com"); //props.setProperty("mail.smtp.port", "465"); props.setProperty("mail.smtp.socketFactory.port", "465"); props.put("mail.smtp.auth", "true"); //创建邮件会话 Session session = Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, pass); } }); //创建邮件信息 Message msg = new MimeMessage(session); try { msg.setFrom(new InternetAddress(username)); msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false)); msg.setSubject(subject); msg.setText(content); msg.setSentDate(new Date()); Transport.send(msg); return "1"; } catch (MessagingException e) { return e.getMessage(); } } }
3. 이메일을 보낼 때 다음 사항을 기억하세요.
(1) 이메일을 보내는 당사자는 smtp/pop3 프로토콜을 활성화해야 합니다!
(2) 이메일을 보내는 당사자는 활성화 후 인증 코드를 비밀번호로 사용하여 설정해야합니다!
(3) 보내는 사람의 이메일 유형을 변경할 때(예: 처음에 XXX@qq.com을 사용하다가 XXX@163.com으로 변경한 경우), mail.smtp.host를 변경해야 합니다 이메일 발신자 정보가 잘못 기재되었습니다. 인증번호가 만료되었거나 사용자 이름이 잘못 기재되었을 수 있습니다.)
•421 HL:REP 이 IP의 전송 동작이 비정상적이고, 존재하지 않는 수신자가 다수 있어 일시적으로 연결이 금지됩니다. 바이러스나 스팸을 보내는 사용자가 있는지 확인하고 발송 목록의 유효성을 확인하세요.
•421 HL:ICC 이 IP의 동시 연결 수가 너무 많아 NetEase의 한도를 초과하여 연결이 일시적으로 중단되었습니다. 금지. 바이러스나 스팸을 보내는 사용자가 있는지 확인하고 동시 IP 연결 수를 줄이십시오.
•421 HL:IFC 이 IP는 짧은 시간에 NetEase의 한도를 초과하여 많은 양의 편지를 보냈습니다. 일시적으로 접속이 금지되었습니다. 바이러스나 스팸을 보내는 사용자가 있는지 확인하고 전송 빈도를 줄이십시오.
•421 HL:MEP 이 IP의 전송 동작이 비정상적이며, 위조된 전송 도메인 이름이 많고 연결이 없습니다. 일시적으로 금지됩니다. 바이러스 또는 스팸 이메일을 보내는 사용자가 있는지 확인하고 실제적이고 유효한 도메인 이름을 사용하여 보내십시오.
•450 MI:CEL 보낸 사람에게 오류 지침이 너무 많습니다. 전송 프로그램을 확인하세요.
•450 MI: 현재 연결에서 DMC가 보낸 이메일 수가 한도를 초과했습니다. 각 연결에서 전달되는 이메일 수를 줄여주세요.
•450 MI:CCL 보낸 사람이 너무 많은 지침을 보냈습니다. 전송 프로그램을 확인하세요.
•450 RP:DRC 현재 연결에서 전송한 수신자 수가 한도를 초과했습니다. 연결당 전달되는 이메일 수를 조절하세요.
•450 RP:CCL 보낸 사람이 너무 많은 지침을 보냈습니다. 전송 절차를 확인하세요.
•450 DT:RBL 전송 IP는 하나 이상의 RBL에 있습니다. RBL 관련 정보는 http://www.rbls.org/를 참조하세요.
•450 WM:BLI 이 IP는 NetEase에서 허용하는 전송 주소 목록에 없습니다.
•450 WM:BLU This NetEase에서 허용하지 않는 사용자입니다.
•451 DT:SPM, 이메일 본문에 스팸 특성이 있거나 전송 환경이 표준화되어 있지 않아 일시적으로 거부됩니다. 이메일 대기열을 유지한 후 2분 후에 이메일을 다시 보내주세요. 이메일 내용을 조정하거나 전송 환경을 최적화해야 합니다.
•451 요청한 메일 조치가 수행되지 않음: 인증 실패 횟수가 너무 많음 로그인이 너무 많이 실패하여 일시적으로 로그인이 금지되었습니다. 비밀번호 및 계정 확인 설정을 확인하세요.
•451 RP:CEL 보낸 사람에게 오류 명령이 너무 많습니다. 전송 프로그램을 확인하세요.
•451 MI: 현재 연결에서 DMC가 보낸 이메일 수가 한도를 초과했습니다. 각 연결에서 전달되는 이메일 수를 조절하세요.
•451 MI:SFQ 발신자가 15분 이내에 보낸 이메일 수가 한도를 초과했습니다. 이메일 전송 빈도를 조절하세요.
•451 RP:QRC 보낸 사람이 단기입니다. 누적 받는 사람 수가 한도를 초과하여 보낸 사람의 메시지 전송이 일시적으로 금지됩니다. 이 사용자의 메시지 전송 빈도를 줄여주세요.
•451 요청된 작업이 중단되었습니다: 처리 중 로컬 오류가 발생했습니다. 시스템에 일시적인 오류가 있습니다. 나중에 다시 전송해 보세요.
•500 오류: 잘못된 구문U smtp 구문입니다. 보낸 명령이 잘못되었습니다.
•550 MI:NHD HELO 명령은 비워 둘 수 없습니다.
•550 MI:IMF 보낸 사람의 이메일 주소가 잘못되었습니다. 이메일 사양 정의는 http://www.rfc-editor.org/를 참조하세요.
•550 MI: SPF 발신 IP가 발신 도메인의 SPF에 의해 승인되지 않았습니다. SPF 사양 정의는 http://www.openspf.org/를 참조하세요.
•550 MI:DMA 이 이메일은 발신 도메인의 DMARC에서 승인하지 않았습니다. DMARC 사양 정의는 http://dmarc.org/를 참조하세요.
•550 MI:STC 해당 날짜에 보낸 사람의 연결 수가 한도를 초과하여 해당 날짜에 보낸 사람의 이메일이 더 이상 허용되지 않습니다. 연결 수를 조절하세요.
•550 RP:FRL NetEase 사서함은 익명 전달(오픈 릴레이)을 허용하지 않습니다.
•550 RP:RCL 대량 전송 수신자 수가 한도를 초과했습니다. 숫자를 줄여주세요. 각 이메일당 수신자 수 수량;
•550 RP:TRC 보낸 사람의 일일 누적 수신자 수가 한도를 초과하여 해당 날짜에는 보낸 사람의 이메일이 더 이상 허용되지 않습니다. 이 사용자가 보내는 이메일의 빈도를 줄여주세요.
•550 DT:SPM 이메일 본문에 스팸 특성이 많거나 전송 환경이 표준화되어 있지 않습니다. 이메일 내용을 조정하거나 전송 환경을 최적화해야 합니다.
•550 잘못된 사용자 요청한 사용자가 존재하지 않습니다.
•550 블랙리스트에 있는 사용자 이 사용자는 NetEase 사용자에게 편지를 보낼 수 없습니다.
•550 사용자가 정지되었습니다. 요청한 사용자가 비활성화되었거나 정지되었습니다.
•550 요청한 메일 작업이 수행되지 않았습니다. 수신자가 너무 많습니다. 그룹 메시지 수가 한도를 초과했습니다.
•552 불법 첨부 파일 유형입니다. .uu .pif .scr .mim .hqx .bhx .cmd .vbs .bat .com .vbe .vb .js .wsh 등으로 끝나는 첨부 파일을 포함하여 전송이 허용되지 않습니다.
•552 요청된 메일 작업 중단됨: 메일 크기 제한 초과 보낸 편지의 크기가 NetEase 사서함에서 허용하는 제한을 초과했습니다.
•553 요청한 작업이 수행되지 않았습니다. NULL 보낸 사람은 허용되지 않습니다. 보낸 사람은 비어 있을 수 없습니다. 실제 메시지를 사용하십시오.
•553 요청된 작업이 수행되지 않음: 로컬 사용자만 SMTP 유형 시스템은 발신자가 이 사이트의 사용자가 되도록 허용합니다.
•553 요청된 작업이 수행되지 않음: no smtp MX 전용 MX 유형 시스템 발신자를 이 사이트의 사용자로 허용하지 마십시오.
•553 인증이 필요합니다. SMTP 인증이 필요합니다. 클라이언트 설정을 확인하세요.
•554 DT: SPM에서 보낸 이메일의 내용에 승인되지 않은 정보가 포함되어 있거나 시스템에서 스팸으로 인식됩니다. 바이러스나 스팸을 보내는 사용자가 있는지 확인하세요.
•554 DT:SUM 봉투 발송인과 레터헤드 발송인이 일치하지 않습니다.
•554 IP가 거부되었습니다. smtp 인증 오류 제한이 IP 확인 시도 실패 횟수를 초과했습니다. 다수를 초과하여 일시적으로 연결이 금지됩니다. 인증정보 설정을 확인해 주세요.
•554 HL:IHU 스팸발송 또는 비정상적인 연결 동작으로 인해 발신IP가 일시적으로 중단되었습니다. 전송 IP의 전송 상태 기록과 전송 프로그램에 이상이 있는지 확인하세요.
•554 HL:IPB 이 IP는 NetEase의 전송 허용 주소 목록에 없습니다.
•554 MI:STC 발신자 하루 누적 이메일 수가 한도를 초과하며, 해당 발신인이 보낸 편지는 해당 날짜에 더 이상 수신되지 않습니다. 이메일 전송 빈도를 줄여주세요.
•554 MI:SPB 이 사용자는 NetEase에서 이메일을 보내도록 허용한 사용자 목록에 없습니다.
•554 블랙리스트에 있는 IP 이 IP는 전송 주소 목록에 없습니다. NetEase에서 허용합니다.