Os exemplos deste artigo compartilham o código de implementação específico da função de envio e recebimento de email para sua referência. O conteúdo específico é o seguinte
Trabalho de preparação, construção de meio ambiente:
1. Construa um servidor de correio localmente
EasyMail Server, EyoumailServerSetup.exe
2. Crie uma nova conta de e -mail
Zhang San enviou um e -mail para Li Si.
Etapa 1:
Crie um novo nome de domínio: ferramentas, configurações do servidor, digite o iTcast.com na caixa de nome de domínio único
Etapa 2:
Crie uma nova conta de e -mail: [email protected]
[email protected]
3. Instale o Foxmail
Configure o servidor de envio de email (SMTP): localhost 25
Email Receiving Server (POP3): Localhost 110
Crie uma nova conta e você pode receber e -mails!
Perceber
Se for um projeto da web, porque o Javaee vem com a função de email, pode haver problemas!
Precisamos usar nossa própria função de arquivo de e -mail.jar! Você precisa excluir o pacote de correio em Javaee!
usar:
Para o desenvolvimento do Javamail, primeiro introduza arquivos JAR:
ativação.jar [Se você usar o JDK1.6 ou acima, você não pode usar este arquivo JAR]
Mail.Jar [Email enviando o pacote principal]
/** * 1. Envie um email normal * @author jie.yuan * */public class App_sendmail {@Test public void testsend () lança a exceção {// 0. Propriedades dos parâmetros de correio Prop = new Properties (); Prop.put ("Mail.Transport.Protocol", "SMTP"); // Especifique o protocolo Prop.put ("Mail.smtp.host", "localhost"); // host stmp.qq.com Prop.put ("Mail.smtp.port", 25); // porta prop.put ("Mail.smtp.auth", "true"); // Autenticação de senha do usuário Prop.put ("Mail.debug", "True"); // Modo de depuração // 1. Crie uma sessão de sessão de e -mail session = session.getDefaultInstance (Prop); // 2. Crie um objeto de corpo de correio (objeto de email inteiro) MIMEMESSAGE MENSAGE = NOVO MIMEMESSAGE (SESSÃO); // 3. Defina os parâmetros do corpo de email: //3.1 title message.setsubject ("meu primeiro email"); //3.2 Mail enviando a mensagem de tempo.setsEntDate (new Date ()); //3.3 Message.SetSender (new InternetAddress ("[email protected]")); //3.4 Mensagem do destinatário.SetRecipient (receptorype.to, new InternetAddress ("[email protected]")); //3.5 content message.settext ("Olá, ele foi enviado com sucesso! Texto ...."); // Mensagem de email simples de texto simples.SaveChanges (); // Salvar email (opcional) // 4. Enviar transporte trans = session.gettransport (); trans.connect ("zhangsan", "888"); // Envie email trans.sendMessage (message, message.getAllRecipients ()); trans.close (); }}Com fotos
/** * E -mail com recursos de imagem * @author jie.yuan * */public class App_2sendWithimg {// Parâmetros de inicialização Propriedades estáticas privadas Prop; // remetente privado estático internetddress sendman = null; estático {prop = new Properties (); Prop.put ("Mail.Transport.Protocol", "SMTP"); // Especifique o protocolo Prop.put ("Mail.smtp.host", "localhost"); // host stmp.qq.com Prop.put ("Mail.smtp.port", 25); // porta prop.put ("Mail.smtp.auth", "true"); // Autenticação de senha do usuário Prop.put ("Mail.debug", "True"); // Modo de depuração tente {sendman = new InternetAddress ("[email protected]"); } catch (endereço e) {lança nova runtimeException (e); }} @Test public void testsend () lança Exceção {// 1. Crie uma sessão de sessão de correio session = session.getDefaultInstance (prop); // 2. Crie um objeto de email Mimemessage Message = new Mimemessage (sessão); // 3. Defina parâmetros: título, remetente, destinatário, tempo de envio, conteúdo message.SetSubject ("Correio com imagem"); Message.SetSENDEN (Sendman); message.setRecipient (receptorype.to, new InternetAddress ("[email protected]")); message.SetSentDate (new Date ()); / ************************ Definir conteúdo de email: email de usuário multifuncional (relacionado) *********************** // 4.1 Construa um bloco de correio multifuncional Mimemultipart relacionado = novo Mimemultipart ("Relacionado"); // 4.2 Construa o conteúdo do bloco de correio multifuncional = texto no recurso de imagem esquerda + no conteúdo do MimeBodyPart direito = new MimeBodyPart (); MimeBodyPart Resource = new MimeBodyPart (); // Defina conteúdo específico: a. Recurso (imagem) string filepath = app_2sendwithimg.class.getResource ("8.jpg"). GetPath (); DataSource DS = new FileDataSource (novo arquivo (filepath)); Datahandler Handler = new Datahandler (DS); Resource.SetDatahandler (Handler); Resource.SetContentId ("8.JPG"); // Defina o nome do recurso e faça referência à chave estrangeira // Defina o conteúdo específico: b. Text content.setContent ("<img src = 'cid: 8.jpg'/> ok!", "Text/html; charset = utf-8"); Related.AddbodyPart (Conteúdo); Related.AddbodyPart (Recurso); /*********4.3 Adicione os e -mails complexos construídos aos e -mails *******/ message.setContent (relacionado); // 5. Enviar transporte trans = session.getTransport (); trans.connect ("zhangsan", "888"); trans.sendMessage (message, message.getAllRecipients ()); trans.close (); }}Fotos + anexos
/** * 3. E -mail com recursos e anexos de imagem * @author jie.yuan * */public class App_3imgandatta {// Parâmetros de inicialização Propriedades estáticas privadas Prop. // remetente privado estático internetddress sendman = null; estático {prop = new Properties (); Prop.put ("Mail.Transport.Protocol", "SMTP"); // Especifique o protocolo Prop.put ("Mail.smtp.host", "localhost"); // host stmp.qq.com Prop.put ("Mail.smtp.port", 25); // porta prop.put ("Mail.smtp.auth", "true"); // Autenticação de senha do usuário Prop.put ("Mail.debug", "True"); // Modo de depuração tente {sendman = new InternetAddress ("[email protected]"); } catch (endereço e) {lança nova runtimeException (e); }} @Test public void testsend () lança Exceção {// 1. Crie uma sessão de sessão de correio session = session.getDefaultInstance (prop); // 2. Crie um objeto de email Mimemessage Message = new Mimemessage (sessão); // 3. Defina parâmetros: título, remetente, destinatário, tempo de envio, conteúdo message.SetSubject ("Correio com imagem"); Message.SetSENDEN (Sendman); message.setRecipient (receptorype.to, new InternetAddress ("[email protected]")); message.SetSentDate (new Date ()); /** Desenvolvimento de correio com anexo (imagem)*/ // Construa um bloco de correio total Mimemultipart mixed = new Mimemultipart ("Mixed"); // -> O correio total é rápido, definido como message.setContent (misto); // Esquerda: (Text + Image Resource) MimeBodyPart esquerda = new MimeBodyPart (); // direita: anexo MimeBodyPart Right = new MimeBodyPart (); // defina como um bloco de correio total mixed.addbodyPart (à esquerda); mixed.adddbodyPart (à direita); / ******* Anexo **********/ string att_path = this.getclass (). GetResource ("a.docx"). GetPath (); DataSource att_ds = new FileDataSource (novo arquivo (att_path)); Datahandler att_handler = new Datahandler (att_ds); Right.SetDatahandler (att_handler); Right.SetFilename ("A.Docx"); / ************************ Definir conteúdo de email: email de usuário multifuncional (relacionado) ************************ // 4.1 Construa um bloco de email multifuncional Mimemultipart Related = new Mimemultipart ("Relacionado"); // ---> defina como esquerda.setContent (relacionado); // 4.2 Construa o conteúdo multifuncional do bloco de email = texto no recurso de imagem esquerda + no conteúdo do MimeBodyPart direito = new MimeBodyPart (); MimeBodyPart Resource = new MimeBodyPart (); // Defina conteúdo específico: a. Recurso (imagem) string filepath = app_3imgandatta.class.getResource ("8.jpg"). GetPath (); DataSource DS = new FileDataSource (novo arquivo (filepath)); Datahandler Handler = new Datahandler (DS); Resource.SetDatahandler (Handler); Resource.SetContentId ("8.JPG"); // Defina o nome do recurso e faça referência à chave estrangeira // Defina o conteúdo específico: b. Text content.setContent ("<img src = 'cid: 8.jpg'/> ok!", "Text/html; charset = utf-8"); Related.AddbodyPart (Conteúdo); Related.AddbodyPart (Recurso); // 5. SendTransport trans = session.getTransport (); trans.connect ("zhangsan", "888"); trans.sendMessage (message, message.getAllRecipients ()); trans.close (); }}O exposto acima é tudo sobre este artigo, espero que seja útil para todos aprenderem a programação Java.