Download e upload de anexos, enviar mensagens de texto e enviar e -mails são funções muito usadas no programa. Eu gravei o upload e o download de arquivos e enviei mensagens de texto. Desde que estava ocupado recentemente, não tive tempo de fazer a função de envio de email. Agora finalmente enviei e -mails com sucesso para o e -mail QQ com 163 Caixa de correio. A seguir, são apresentados os códigos relevantes. Para detalhes, consulte os comentários no código:
teste de pacote; importar java.util.arraylist; importar java.util.date; importar java.util.list; importar java.util.properties; importar java.util.regex.matcher; importar java.util.regex.pattern; importar javax.mail.address; importar javax.mail.authenticator; importar javax.mail.bodypart; importar javax.mail.message; importar javax.mail.passwordAuthentication; importar javax.mail.session; importar javax.mail.transport; importar javax.mail.internet.internetaddress; importar javax.mail.internet.mimebodyPart; importar javax.mail.internet.mimemessage; importar javax.mail.internet.mimemultipart; importação com.sun.mail.util.mailssocketFactory; /// */ * // * @Author TUZONGXUN123 // * @Description Mail Enviar classe de teste // */classe pública sendmailtest {public static void main (string [] args) lança exceção {// Propriedades de informações de configuração pro = new Properties (); pro.put ("Mail.smtp.host", "smtp.163.com"); pro.put ("Mail.smtp.auth", "true"); // Criptografia SSL MailSslSocketFactory sf = null; sf = new MailSslSocketFactory (); // Defina confiança em todos os hosts sf.ettrustallHosts (true); pro.put ("Mail.smtp.ssl.enable", "true"); pro.put ("Mail.smtp.ssl.socketFactory", SF); // Construa uma sessão para enviar e -mails com base nas propriedades da sessão do email. Deve -se notar aqui que o nome do usuário não pode ser sufixo, caso contrário, não será o nome do usuário. // Também deve -se notar que a senha aqui não é a senha de login da caixa de correio normalmente, mas outro código de autorização especial gerado pelo cliente MailAuthenticator Authorizer = new MailAuthenticator ("Tuzongxun123", "Código de autorização do cliente"); Sessão session = session.getInstance (pro, autorizador); // Construa informações de email com base na mensagem da sessão Mensagem = new Mimemessage (sessão); // Crie endereço de endereço do remetente de e -mail de = new InternetAddress ("[email protected]"); // defina o remetente da mensagem de email.setFrom (de); // Verifique a lista de endereços de e -mail do destinatário <String> toaddressList = new ArrayList <> (); toaddressList.add ("[email protected]"); StringBuffer buffer = new StringBuffer (); if (! toaddressList.isempty ()) {string regex = "^([a-z0-9a-z]+[-| //.]?)+[a-z0-9a-z]@[a-z0-9a-z]+(-[a-z0-9a-z]+)? //. Padrão p = padrão.compile (regex); for (int i = 0; i <toaddressList.size (); i ++) {Matcher Match = P.Matcher (toaddressList.get (i)); if (match.matches ()) {buffer.append (toaddressList.get (i)); if (i <baddressList.size () - 1) {buffer.append (","); }}}}} String toaddress = buffer.toString (); if (! toaddress.isempty ()) {// Crie o endereço do destinatário do endereço da mensagem [] para = internetAddress.parse (toaddress); // Defina o endereço do destinatário do email message.SetRecipients (message.recipientType.to, para); // email sujeito // message.setsubject ("teste de correio java"); message.SetSubject ("Por que está errado"); // contêiner de email Mimemultipart Mimemultipart = new Mimemultipart (); // Definir HTML BodyPart BodyPart = new MimeBodyPart (); // Mail Content // String htmltext = "Teste de email Java 111"; String htmltext = "Por que está errado"; bodyPart.SetContent (htmltext, "text/html; charset = utf-8"); Mimemultipart.addbodypart (BodyPart); // Adicionar lista de anexo <String> fileadDressList = new ArrayList <String> (); fileaddressList .add ("c: // usuários // tuzongxun123 // desktop // new Microsoft office word document.docx"); if (fileaddressList! = null) {bodypart anexPart = null; for (int i = 0; i <fileaddressList.size (); i ++) {if (! fileaddressList.get (i) .isEmpty ()) {AppTPart = new MimeBodyPart (); // fonte de dados de dados de dados de dados fonte = new filedataSource (fileaddressList.get (i)); // Adicione a fonte de dados de anexo ao corpo de correio AnextPart.SetDatahandler (New Datahandler (fonte)); // Defina o nome do anexo como o nome do arquivo original APCHPART.SETFILENAME (Mimeutility.EncodeText (fonte .getName ())); Mimemultipart.addbodyPart (attchPart); }}} message.setContent (Mimemultipart); message.SetSentDate (new Date ()); // Salvar email message.SaveChanges (); // Envie o email transport.send (mensagem); }}} classe MailAuthenticator estende o autenticador { / *** nome de usuário* / name de usuário privado string; / *** Senha*/ senha de sequência privada; /*** Crie uma nova instância MailAuthenticator. * * @param nome de usuário * @param senha */ public MailAuthenticator (Nome de usuário da String, String senha) {this.username = nome de usuário; this.password = senha; } public string getPassword () {return senha; } @Override Protected PasswordAuthentication getPasswordAuthentication () {Return New PasswordAuthentication (nome de usuário, senha); } public string getUserName () {return userName; } public void setPassword (string senha) {this.password = senha; } public void setUserName (string userName) {this.username = nome de usuário; }}Nota: Um colega meu usou meu código para substituí -lo por sua conta e código de autorização do cliente. Ele relatou um erro assim que o executou. Em seguida, ele redefiniu o código de autorização do cliente do endereço de email e o erro desapareceu.
O exposto acima é tudo sobre este artigo, espero que seja útil para todos aprenderem a programação Java.