Eu resumi a explicação de vários tipos de emails: 1. Rede; dado o remédio no artigo a seguir.
A caixa de correio da empresa está atualmente usando o Zimbra. Após o teste, cada 100 e -mails podem ser enviados com sucesso cerca de 98 seções.
Caso de teste 1: 100 Seal, o tempo total é de cerca de 16 minutos;
Caso de teste 2: 100 Seal, o tempo total é de cerca de 16 minutos; Adicione o mecanismo de falha de falha, aguarde que 10s fiquem emitidos após a falha, até 3 vezes;
Caso de teste 3: Cada seção é emitida, fica 10s e leva 32 minutos no total;
Para o problema da MessagingException, você pode se referir a:
javax.mail.messagingException: não foi possível conectar ao host SMTP
Em resposta a esse tipo de problema, adicionei o email para reencontrá -lo,
if (sendhtmlmail_ (email) {return true;} else {int i = 0; interruptEdException e) {Logger.error ("Relying Mail Error", e);}} Retornar true;} No entanto, esse mecanismo causou um novo problema. por e -mails e parte do email.
Em resposta aos problemas acima, removeremos o mecanismo de realização e removeremos -o apenas para e -mails ilegais (ou seja, o endereço de email que não existe no servidor) e depois o enviará após a remoção. A falha de envio de email causada por outros motivos não será reiniciada (o problema se reportará ao fabricante através do departamento de operação e manutenção do servidor de correio).
A seguir, a lógica de determinar se o correio é legal:
1. SMTP está em dois casos: primeiro, o email é transmitido do cliente para o servidor;
2. SMTP é um protocolo de solicitação/resposta. A resposta inclui um código de três dígitos que representa o estado de retorno
3. SMTP no Contrato TCP nº 25, a solicitação de monitoramento da boca
4. Conexão e processo de envio
O protocolo SMTP não é complicado ou complicado, e é simples se você conhece o soquete. Mas agora é apenas o que usamos no primeiro artigo, do cliente transmitido ao servidor.
5 As etapas da operação são as seguintes:
Porta 25 conectada ao servidor (se não houver serviço de email, mesmo a conexão branca)
Enviar Saudações Helo Envie o Comando de Correio.
Envie o RCPT para comando.
O código específico é o seguinte:
Importar java.io.*; linha de string = null; Texto) thr ows ioexception {wr .Write (texto + "/r/n"); = Novo hashtable (); }) ;; atributo atts.get ("mx"); | Jogando namingExcepti (em (em "sem correspondência para nome '" + hostname + "'");} // huzzah! Temos Machnes para tentar. Arraylist res = novo Arraylist (); **************************************************** **************************************************** **************************************************** **************************************************** *, (f [1] .ndswith (".") MaHhost = f [1] .Substring (0, (f [1]. () - 1)); else MaHHost = f [1]; // A correção **************** res.add (maylHost);} retornar res;} public static boolean isaddressValid (endereço da string) {// Encontre o séptor o nome do dinário int pos = endereço. indexof ('@'); XCHangers String domain = endereço.substring (++ pos); // O endereço é valor, mas se não pudermos, é o sinal de que não é se (mxlist.size () == 0) retornar false; Obtenha // uma conta positiva. OME // para levar em consideração a preferência. ); Rgagnon.com "); res = ouvir (rdr); if (res! = 250) lançar uma nova exceção (" "não ESMTP"); .com> "); res = ouvir (rdr); if (res! = 250) lançando nova exceção (" remetente ted "); diga (wtr," rcpt para: <" + endereço +"> ""); res = ouve (rdR); "Endereço não é valor!"); ;} Finalmente {if (válido) retorna true;}} public atic void main (string args []) {string testdata [] = {"[email protected]", "[email protected]", "endereço do governo" [email protected] "// falha deste método}; para (int ctr = 0; ctr <testData.length; ctr ++) {System.out.println (testData [ctr] +" é vali d? " + IsaddressValid (testData [ctr]);} return;}}O acima é a lógica de determinar se o endereço de email é legal.
String estática privada [] REMOVENDO OS ENDEREÇÕES DA STRING) {ArrayList <Stram) validateaddresses = novo ArrayList <Stram ) || (); Código = smptrans.simplendmand (sendcmd); NormalAddress = NormalizeadDress (Endereço); } Catch (MessagingException e) {Logger.error ("Valide Erro de Endereço de Correio. !O acima é todo o conteúdo deste artigo. Espero que todos possam entender e ajudar a todos.