Resumí la explicación de varios tipos de correos electrónicos: 1. Red; Remedio dado en el siguiente artículo.
El buzón de la compañía está utilizando actualmente Zimbra. Después de las pruebas, cada 100 correos se pueden enviar con éxito alrededor de 98 secciones.
Caso de prueba 1: 100 Sello, el tiempo total es aproximadamente: 16 minutos;
Caso de prueba 2: 100 Sello, el tiempo total es de aproximadamente 16 minutos; Agregue el mecanismo de falla para la falla, espere a que 10s se vuelva a emitir después de la falla, hasta 3 veces;
Caso de prueba 3: cada sección se emite, permanece 10 y toma 32 minutos en total;
Para el problema de la mensajería, puede consultar:
javax.mail.messagingException: no se pudo conectar al host SMTP
En respuesta a este tipo de problema, agregué el correo electrónico para volver a enviarlo,
if (sendhtmlmail_ (mail)) {return true;} else {int i = 0; InterruptedException e) {logger.error ("error de correo de conflicto", e);}} return true;} Sin embargo, este mecanismo ha causado un nuevo problema. por correos electrónicos y parte del correo electrónico.
En respuesta a los problemas anteriores, eliminaremos el mecanismo de red y lo eliminaremos solo para correos electrónicos ilegales (es decir, la dirección de correo que no existe en el servidor), y luego lo enviaremos después de eliminar. La falla de envío de correo electrónico causada por otras razones no se volverá a emitir (el problema informará al fabricante a través del departamento de operación y mantenimiento del servidor de correo).
La siguiente es la lógica de determinar si el correo es legal:
1. SMTP está en dos casos: primero, el correo electrónico se transmite desde el cliente al servidor;
2. SMTP es un protocolo de solicitud/respuesta. La respuesta incluye un código de tres dígitos que representa el estado de retorno
3. SMTP en el Acuerdo TCP No. 25, la solicitud de monitoreo de la boca
4. Proceso de conexión y envío
El protocolo SMTP no es complicado ni complicado, y es simple si conoce el socket. Pero ahora es solo lo que usamos en el primer artículo, desde el cliente transmitido al servidor.
5 Los pasos de la operación son los siguientes:
Puerto 25 conectado al servidor (si no hay servicio de correo, incluso la conexión blanca)
Enviar saludos de Helo Enviar el correo del comando.
Enviar el RCPT al comando.
El código específico es el siguiente:
Import java.io.*; línea de cadena = nulo; Texto) thr oWs ioException {wr .Write (texto + "/r/n"); = Nuevo hashtable (); }) ;; | (Attr. Size () == 0)) {attrs = ictx.getAttributes (hostname, nueva cadena [] {"a"}); Lanzar NamingExcepti (en (en "No Match for Name '" + HostName + "'");} // Huzzah! Tenemos que Machnes para probar. Nt para ser absolutamente // Correcto. Esto se deja como una conciencia para cualquier persona que le importe. ArrayList Res = New ArrayList (); ************************************************************ ************************************************************ ************************************************************ ************************************************************ *, (f [1] .ndswith (".") mailhost = f [1] .substring (0, (f [1]. () - 1)); else MailHost = f [1]; // La solución ****************** Res.Add (Maylhost);} return res;} public static boolean isAddressValid (dirección de cadena) {// Encuentra el separador del nombre dmain int pos = dirección. indexOf ('@'); XCHANGERS String Domain = Direct.Substring (++ Pos); // La dirección es valor, pero si no podemos, es un signo de que no es si (mxlist.size () == 0) return false; Obtener // una contabilidad positiva. ome // para tener en cuenta la preferencia. ); Rgagnon.com "); res = hear (rdr); if (res! = 250) tirar una nueva excepción (" no esmtp "); .com> "); res = hear (rdr); if (res! = 250) arrojar una nueva excepción (" remitente ted "); digamos (wtr," rcpt a: <" + dirección +"> ">"); Res = Hear (RDR); "¿La dirección no es valor!"); ;} Finalmente {if (válido) return true;}} public atic void main (string args []) {string testData [] = {"[email protected]", "[email protected]", "dirección del gobierno" [email protected] "// falla de este método}; para (int ctr = 0; ctr <testData.length; ctr ++) {system.out.println (testData [ctr] +" es vali d? " + IsaddressValid (testData [ctr]);} return;}}Lo anterior es la lógica de determinar si la dirección de correo es legal.
String static [] RemoverInValidAteadDress (String [], String MailFrom) {ArrayList <String> ) || (); NormalAddress = NormalizeDDress (dirección); } Catch (MessioningException e) {logger.error ("Validar el error de la dirección de correo. Enviar desde" + mailFrom, e); !Lo anterior es todo el contenido de este artículo.