Introdução aos conceitos básicos de email
O email é usado para transmitir confiança e se comunicar on -line, e é um dos serviços de Internet mais importantes. De acordo com as estatísticas, 30% dos serviços da Internet estão relacionados ao email. Ao mesmo tempo, não podemos negar que ela desempenha um papel importante em nossa vida diária, trabalho e escritório. Por exemplo: muitos projetos de automação de escritórios (OEA) têm a função de enviar e -mails. Se você também usa métodos manuais como o Outlook, isso não é adequado. Nesta era de alta velocidade, precisamos fornecer eficiência no trabalho para que o trabalho possa ser automatizado. Ao mesmo tempo, muitos sites também precisam enviar e-mails: envie um e-mail bem-vindo a usuários recém-registrados com suas informações de registro, envie as informações mais recentes de atividade do site para todos os membros registrados por e-mail etc.
Antes de iniciar o desenvolvimento de email: precisamos entender vários conceitos: sistema de email, servidor de e -mail, e -mail, software de e -mail, protocolo de transmissão de email e processo de transmissão de email.
Sistema de email
Semelhante aos serviços postais tradicionais, o sistema de email consiste em um escritório de e -mail, um sistema de envio e recebimento de e -mail. Remetentes e destinatários enviam e recebem e -mails por e -mails e sistemas de envio e recebimento, que na verdade são programas de clientes em correio em execução em computadores. O escritório de email reproduz uma ponte, que na verdade é um programa de servidor de correio em execução no servidor. O processo de processamento de email é semelhante ao dos serviços postais.
Servidor de correio
Um servidor de email é um dispositivo usado para gerenciar e -mails. Há um grande número de servidores de e -mail disponíveis na Internet, como: 126, 163, Hotmail ...
As principais funções fornecidas pelo servidor de e -mail:
1. Receba e -mails enviados pelos usuários.
2. Encaminhe o email entregue pelo usuário ao servidor de email de destino.
3. Receba e -mails encaminhados por outros servidores de email e armazene os e -mails nos e -mails do usuário que eles gerenciam.
4. Forneça aos usuários que vêm para ler e -mails para ler e -mails.
Os servidores de email formam o núcleo do sistema de email. Cada destinatário possui uma caixa de correio (caixa de correio) localizada em um determinado servidor de correio. A caixa de correio de Bob é usada para gerenciar e manter mensagens de e -mail que foram enviadas a ele. Uma jornada típica de uma mensagem de email começa com o agente do usuário do remetente, o servidor de email do remetente, é transferido para o servidor de email do destinatário e, em seguida, entregue no endereço de email do destinatário. Quando Bob deseja visualizar as mensagens de email em sua caixa de correio, o servidor de correio que armazena a caixa de correio o autenticará com o nome de usuário e a senha que ele forneceu. O servidor de email de Alice também precisa lidar com a falha do servidor de correio de Bob. Se o servidor de email de Alice não puder entregar mensagens de email ao servidor de email de Bob imediatamente, o servidor de Alice as armazena na fila de mensagens e depois tenta entregá -las posteriormente. Essa tentativa geralmente é realizada a cada 30 minutos: se a tentativa não conseguir ter sucesso após vários dias, o servidor remove a mensagem da fila de mensagens e notifica o remetente (ou seja, Alice) com outra mensagem de email.
e-mail
O email é um método de comunicação moderno que transmite e recebe informações uma da outra através da rede. É um método de comunicação que fornece troca de informações por meios eletrônicos e é o serviço mais usado na Internet. Por meio do sistema de email da rede, os usuários podem entrar em contato com os usuários da Internet em qualquer canto do mundo em um preço muito baixo e de uma maneira muito rápida. Esses e -mails podem ser de várias maneiras, como texto, imagens, som etc., ao mesmo tempo, os usuários podem obter um grande número de notícias gratuitas e e -mails especiais e realizar uma pesquisa de informações fácil.
O email consiste em duas partes: envelope e conteúdo. Os envelopes também são chamados de cabeçalhos de email e o servidor de email entrega e -mail com base na confiança no envelope. O conteúdo é chamado de corpo de correio, usado para fornecer o conteúdo específico do email.
O endereço de e -mail na Internet é exclusivo em todo o mundo e seu formato é "Nome do Nome do Email@Mail Server Nome de domínio". O domínio (domínio de email) é a unidade de gerenciamento básica do servidor de email. O serviço de email é baseado em domínio e cada caixa de correio corresponde a um usuário. O nome do domínio do servidor de correio deve ser um nome de domínio DNS registrado e deve corresponder ao registro MX (Switch de email). O DNS é usado para resolver nomes de domínio e nomes de host em endereços IP. O MX Record aponta para o registro do host do servidor de correio do nome de domínio e é dedicado aos serviços de correio.
Software cliente de email
O software cliente de email é responsável por se comunicar com o servidor de email, que é usado principalmente para ajudar os usuários a enviar emails para o servidor SMTP e o servidor Pop3/IMAP Mail para ler o email do usuário. O software cliente de email geralmente integra a escrita, envio e recebimento de e -mails.
E-mail
Vários endereços de email podem ser iniciados no topo de cada servidor de email, também conhecido como endereços de e-mail. É semelhante a um endereço de correspondência da vida real através do qual os usuários aceitam e enviam e-mails de outras pessoas.
A obtenção de um email exige a aplicação do servidor de email. Para ser preciso, o email é na verdade uma conta que o usuário aplica no servidor de email. O servidor de email mantém o correio recebido no espaço da caixa de correio alocado para uma conta e o usuário faz login no servidor de correio através do nome de usuário e senha que ele solicita para visualizar as mensagens de email que foram recebidas pelo endereço.
Processo de transmissão de email
O sistema de email está no modo cliente/servidor. A entrega de email requer os três módulos importantes seguintes:
UA (Mail User Agent, Mail User Agent): O usuário lida com o servidor de email através dele. O MUA é na verdade o software do cliente de email.
MTA (agente de transferência de correio, agente de transferência de correio): É principalmente responsável pelo processamento de todos os e -mails recebidos e enviados, fornecendo serviços de entrega de email para MUA ou MTA e recebendo e -mails enviados por outros MTAs.
MDA (agente de entrega de correio, agente de entrega de correio): é responsável pela entrega local de email. Quando o MTA decide enviar um determinado email ao usuário local, o MTA entrega o email para o programa MDA para distribuição, ou seja, é entregue ao usuário.
O processo de transmissão específico é o seguinte:
1. O remetente usa o MUA para enviar o email para o MTA.
2. Depois de receber o email, o MTA determina se o destinatário é uma conta local. Se for uma conta local, será entregue ao MDA ao endereço de email da conta, preencha o processo de envio e pule para a etapa 5. Caso contrário, execute a próxima etapa.
3. O MTA decide como encaminhar e -mails com base em suas configurações de encaminhamento de relé de email.
4. O MTA do objetivo final entregará o MDA ao seu processamento, e o MDA entregará o email ao endereço de e -mail do destinatário.
5. O destinatário usa o MUA para se conectar ao servidor onde o endereço de email está localizado através do protocolo POP/IMAP e solicita para verificar se há e -mails em sua caixa de entrada. Se houver email, o MUA do destinatário será transmitido através dele.
Nota: O serviço de acesso por e -mail é solicitado a ser um software Pop ou IMAP Server, não o MTA que recebeu o email. Os papéis dos dois são separados.
Protocolo de transferência de correio
A transmissão de serviço de email usa principalmente os três protocolos de rede a seguir
SMTP (protocolo de transferência de correio simples)
SMTP é um protocolo simples de transferência de correio. A porta TCP padrão é 25. O MUA envia o email para o MTA e o MTA envia o email para o próximo MTA, os quais precisam usar o SMTP. O objetivo do SMTP é fornecer email de maneira confiável e eficiente, é independente do subsistema de entrega e requer apenas um canal que garante a transmissão da ordem das unidades de dados.
O SMTP é um protocolo "unidirecional" que não pode ser coletado por usuários de outros servidores de correio. Ele próprio adota o modo cliente/servidor. O processo SMTP responsável pelo envio de email é o cliente SMTP, e o processo SMTP responsável pelo recebimento de email é o servidor SMTP. Um processo completo de comunicação SMTP inclui principalmente três processos: estabelecendo uma conexão, entrega de email e liberação de uma conexão.
Estabeleça uma conexão: Primeiro, o remetente envia o email para o cache de email. O cliente SMTP verifica o cache de email regularmente. Uma vez que houver uma mensagem, ele estabelece uma conexão TCP com o servidor SMTP e envia um comando hrllo para anexar o nome do host do remetente.
E -mail de entrega: o cliente SMTP usa o comando Mail para começar a enviar o email, que fornece o endereço do remetente; Em seguida, executa o comando RCPT e fornece o endereço do destinatário; Finalmente, executa o comando de dados para transferir o conteúdo de email.
Libere a conexão: Após a entrega do correio, o cliente SMTP envia um comando fora para solicitar para fechar a conexão TCP.
Pop (Contrato dos Correios)
Pop é protocolo dos correios. A porta TCP padrão é 110. Utilizada principalmente para receber e -mails. O MUA se conecta à caixa de entrada do usuário do MTA via protocolo POP para ler ou baixar o correio do usuário na caixa de entrada.
O protocolo POP atualmente usado é POP3. O POP3 usa o TCP como o protocolo de transmissão.
IMAP (Protocolo de acesso à Internet Information)
IMAP é um protocolo de acesso à mensagem da Internet. A porta TCP padrão é 143, o que também permite que o MUA colete e -mails do MTA. A versão do protocolo IMAP da bola de destino é IMAP4.
O POP e o IMAP podem ser usados para coletar e -mails, tanto no modo cliente/servidor. A principal diferença entre os dois é que eles recuperam e -mails de maneira diferente. Ao usar o POP, o email reside no servidor. Depois que o email é recebido, o email é baixado do servidor para o computador do usuário. O IMAP pode entender a situação em que o email é armazenado no servidor e o correio baixado ainda está preso no servidor para facilitar o arquivamento e o compartilhamento de correspondência.
Javamail
1. Introdução ao Javamail
Javamail, como o nome indica, fornece uma interface de programação para os desenvolvedores processarem emails. É uma API lançada pela Sun para lidar com o email. Ele pode executar convenientemente algumas transferências de email comumente usadas. A API do Javamail é um pacote de desenvolvimento padrão fornecido pela Sun para facilitar os desenvolvedores de Java para implementar o envio e recebimento de e -mails e recebendo funções em aplicativos. Ele suporta alguns protocolos de email comumente usados, como SMTP, POP3 e IMAP. Quando os desenvolvedores usam a API do Javamail para escrever o software de processamento de email, eles não precisam considerar os detalhes da implementação do protocolo de email subjacente, basta ligar para a classe API correspondente no pacote de desenvolvimento Javamail.
2. Ambiente de Desenvolvimento de Javamail
Antes do desenvolvimento do Javamail, você deve importar o pacote JAR correspondente. O pacote JAR pode ser baixado no site oficial do Oracle: http://www.oracle.com/technetwork/java/javamail/index.html.
Após a conclusão do download, você pode obter o seguinte diretório:
Entre eles, Mail.Jar: é o pacote de desenvolvimento principal que deve ser usado para desenvolver programas Javamail.
Subdiretório Lib: Este diretório contém 5 pacotes independentes de desenvolvimento de email: Smtp.jar, Pop3.jar, IMAP.Jar e Mailapi.jar. Esses 5 arquivos JAR são classificados para embalagens para email.jar. Entre eles, o Mailapi.jar encapsula a classe API que cria conteúdo de email e chama o envio e o recebimento de correio para desenvolvedores comuns, enquanto os outros três arquivos JAR encapsula o programa de implementação do serviço com seus nomes correspondentes ao protocolo. . Ao compilar os programas de correio Java, você só precisa do arquivo Mailapi.jar, mas em tempo de execução, você deve ter o programa de implementação de serviços subjacentes do protocolo de email correspondente. Se você precisar usar apenas a função de envio de email no aplicativo, você poderá instalar apenas os dois arquivos smtp.jar e Mailapi.jar. Se você precisar usar apenas a função de recebimento de email, poderá instalar apenas os dois arquivos JAR POP3.JAR, IMAP.JAR e MAILAPI.JAR sem instalar todo o arquivo em correio.jar.
O diretório Lib é o seguinte:
3. Introdução à API Javamail
A API do Javamail geralmente é dividida nas três categorias a seguir, de acordo com suas funções:
1. Crie e analise a API de conteúdo de email. A classe de mensagens é a API principal para criar e analisar e -mails. Seu objeto de instância representa um email.
2. A API para enviar e -mails. A classe de transporte é a classe API principal para enviar e -mails. Seu objeto de instância representa o objeto de envio de email que implementa um determinado protocolo de envio de email, como o protocolo SMTP.
3. API para receber e -mails. A aula da loja é a classe API principal para receber e -mails. Seu objeto de instância representa o objeto de recebimento de email que implementa um determinado protocolo de recebimento de email, como o protocolo POP3.
O fluxo de trabalho do Javamail é o seguinte:
Neste fluxo de trabalho, os quatro objetos, mensagem, sessão, transporte e loja estão intimamente conectados para enviar e receber um email. Precisamos apenas entender as funções e funções dessas quatro APIs principais, conhecer suas relações de trabalho e fluxo de trabalho por email e podemos escrever facilmente o Javamail. Para as classes auxiliares do Javamail, quando precisamos delas, podemos seguir as pistas e verificar os documentos para resolver o problema.
Introdução à API Core:
Mensagem
A classe de mensagens é a API principal para criar e analisar e -mails, e seu objeto de instância representa um email. Quando o cliente enviar um email, primeiro use a API de email, encapsule os dados de email criados no objeto da mensagem e depois passe esse objeto para a API de envio de email para enviá -lo. Quando o cliente recebe o email, a API de recebimento de email instala os dados do preço do petróleo recebidos no objeto Instância da mensagem e o cliente usa a API de análise de email para analisar os dados de email recebidos desse objeto.
Sessão
A classe de sessão é usada para definir as informações do ambiente exigidas por todo o aplicativo, bem como para coletar informações de sessão para o cliente estabelecer uma conexão de rede com o servidor de email, como o nome do host, o número da porta e o protocolo de envio e recebimento de e -mails usado. O objeto de sessão cria objetos de armazenamento e transporte para enviar e receber e -mails com base nessas informações da sessão e fornece suporte de informações ao cliente para criar objetos de mensagem.
Transporte
A classe de transporte é a classe API principal para enviar e -mails. Seu objeto de instância representa o objeto de envio de email que implementa um determinado protocolo de envio de email, como o protocolo SMTP. Depois que o programa do cliente cria um objeto de mensagem, ele só precisa usar a API de envio de email para obter o objeto de transporte, depois passar o objeto de mensagem para o objeto de transporte e chamar seu método de envio para enviar o email para o servidor SMTP especificado.
Loja
A aula da loja é a classe API principal para receber e -mails. Seu objeto de instância representa o objeto de recebimento de email que implementa um determinado protocolo de recebimento de email, como protocolos POP3 e IMAP. Quando o programa do cliente recebe correio, ele só precisa usar a API de recebimento de email para obter o objeto Store e, em seguida, chamar o método de recebimento do objeto da loja para obter os dados de email do servidor POP3 especificado e encapsular os dados de email no objeto Mensagem que representa o e -mail.
4. Exemplos
classe pública javamail_01 {public static void main (string [] args) lança exceção {Propriedades props = new Properties (); props.setProperty ("Mail.smtp.auth", "true"); props.setProperty ("Mail.Transport.Protocol", "SMTP"); Sessão session = session.getInstance (adereços); session.setDebug (true); Mensagem msg = new Mimemessage (sessão); msg.SetSubject ("Este é um programa de teste ..."); msg.settext ("Olá! Este é o meu primeiro programa Javamail ---- Chen Ming"); msg.setFrom (novo InternetAddress ("******@163.com")); Transporte de transporte = session.gettransport (); transport.connect ("smtp.163.com", 25, "*********", "************"); transport.sendMessage (msg, novo endereço [] {new InternetAddress ("[email protected]")}); System.out.println ("Email enviado com sucesso ..."); transport.close (); }}