Envíe un correo electrónico simple basado en SMTP
Primero, se necesita un autenticador:
Paquete No001_SMTP Basado de texto basado; import javax.mail.authenticator; import javax.mail.passwordAuthentication; public class SimpleAuthenticator extiende Authenticator {private String String UserName; privado String Password; public SimpleAuthenticator (String UserName, String Password) {super (); this.username = username; this.passpassword =} PassionAspassionAuthentAtation Worthalation () Contraseña Authentication (nombre de usuario, contraseña);}} Luego, escriba un programa simple de envío de correo electrónico:
Paquete No001_ Correo de texto basado en SMTP; import java.util.properties; import javax.mail.message; import javax.mail.message; import javax.mail.messagingException; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.address; import javax.mail.internet.internetadadess; import; javax.mail.internet.mimemessage; public class smtpsimplemail {public static void main (string [] args) lanza DirectionException, MessagingException {/* Información requerida*/String SMTP_Mail_host = "Smtp.163.com"; // Esta dirección del servidor de correo electrónico, vaya al correo electrónico a consulta en cadena de cadena_sinters_username = "[email protected]"; String Correo electrónico_password = "mypassword"; string to_email_address = "[email protected]";/* Información del servidor*/Properties props = new Properties (); props.put ("mail.host", ",,",, ",", SMTP_MAIL_HOST);props.put("mail.smtp.auth", "true");/* Create Session */Session session = Session.getDefaultInstance(props, new SimpleAuthenticator(EMAIL_USERNAME, EMAIL_PASSWORD));/* Email message*/MimeMessage message = new MimeMessage(session);message.setFrom(new Internetaddress (correo electrónico_username)); mensaje.addrecipient (mensaje.recipienttype.to, new Internetaddress (to_email_address)); Message.setsubject ("Cómo usar Java Mail para enviar correo electrónico. (Title) (001)"); Message.setTex Transport.send (mensaje); system.out.println ("No es particularmente desafortunado, puede verificar el correo electrónico");}} ¿Qué debo hacer si envío varios destinatarios, CCS, CCS secretos?
El autenticador se usa, se omite.
De hecho, es configurar, agregar múltiples destinatarios, remitentes CC y remitentes secretos de CC:
Paquete No002_ ¿Qué debo hacer si varios remitentes y destinatarios envían CC al CC? import java.io.unsupportedEncodingException; import java.util.properties; import javax.mail.address; import javax.mail.message; import javax.mail.message; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.addressception; javax.mail.internet.internetAddress; import javax.mail.internet.mimemessage; public class SendMailwithMultipeople {public static void main (string [] args) lanza direccionaryexception, MessesgingException, unsupportedEncodeNingException {/* Información requerida*/String smtp_Mail_host = "smtp.163333.163; // Esta dirección del servidor de correo, vaya al correo electrónico al que pertenece a Search String CORREA ELECT_USERNAME = "[email protected]"; String Correo electrónico_password = "mypassword"; string to_email_address_1 = "[email protected]"; string cc_email_address_1 = "[email protected]"; string bcc_email_address_1 = "Ejemplo de ejemplo" Información*/Propiedades props = new Properties (); props.put ("mail.smtp.host", smtp_mail_host); props.put ("mail.smtp.auth", "true");/*create session*session = session.getdefaultinStance (props, nuevo simpligueuthenticator (correo electrónico_useNeRe, correo electrónico);/*sendederArter [sendero*/Sendero Dirección [1]; SenderArray [0] = new InternetAddress ("[email protected]", "Nick Huang");/* Mensaje de correo electrónico*/Mimemessage Message = new Mimemessage (session); Message.AddFrom (SenderArray); Message.Addrecipient (Message.RecipientType.To, New InternetDress (TOTDESS_1);); Message.Addrecipient (Message.RecipientType.to, New InternetAddress (CC_EMAIL_Address_1)); Message.addrecipient (Message.RecipientType.cc, new Internetaddress (cc_email_address_1)); Message.Addrecipient (Message.RecipientType.cc, new Internetaddress (to_email_address_1)); Message.Addrecipient (Message.RecipientType.bcc, new InternetAddress (bcc_email_address_1)); Message.setsubject ("Soy un correo de aprendizaje de correo Java Mail"); Message.settext ("Soy un correo de aprendizaje de correo de Java, por favor dame un buen comienzo"); // Enviar transporte.send (mensaje); System.out.println ("No particularmente desafortunado, puedes verificar el correo electrónico");}} Qué hacer si envía archivos adjuntos
El autenticador se usa, se omite.
Enviar demostración de archivo adjunto:
Paquete No003_ ¿Qué hacer si envía archivos adjuntos; import java.io.file; import java.io.unsupportedencodingException; import java.util.properties; import javax.activation.datahandler; import javax.activation.dataSource; import javax.activation.filedataSource; import javax.mail.mail.address; javax.mail.message; import javax.mail.messagingException; import javax.mail.multipart; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.addressException; import javax.mail.internet.internetdress; javax.mail.internet.mimemessage; import javax.mail.internet.mimemultipart; public class SendMailwithattAttachment {public static void main (string [] args) lanza direccionalException, MessagingException, UnsupportedEndingingException {/* se requiere información*/String Smtp_Mail_host = "smtp.163"; // Esta dirección del servidor de correo, vaya al correo electrónico a consultar String CORREA ELECT_USERNAME = "[email protected]"; String Correo electrónico_password = "Password"; String TO_EMAIL_ADDRESS_1 = "[email protected]";/* Información del servidor*/Propiedades Props = New Properties (); Props.put ("mail.smtp.host", Smtp_mail_host); props.put ("mail.smtp.auth", "true");/* create session*/session session = session.getDefaultInstance (props, new SimpleAuthEnTeCator (correo electrónico_username, correo electrónico_password));/* Sender*/dirección [] SenderArray = nueva dirección [1]; SenderRay Mensaje*/MIMEMESSAGE Message = new Mimemessage (Session); Message.AddFrom (SenderArray); Message.Addrecipient (Message.RecipientType.to, new InternetDdress (to_email_address_1)); Message.setsubject ("soy un correo electrónico aprendiendo java mail"); carrocería corporal = new MimeBodyPart ();); es el contenido de un correo electrónico que aprende Java Mail, dale mucho dinero. Datahandler (fuente)); adjuntaPart1.SetFileName ("=? 2.txt ")); adjuntaPart2.setDatahandler (new Datahandler (fuente)); adjuntaPart2.SetFileName (" =? MimemUlTipart (); multipart.addbodypart (bodypart); multipart.addbodypart (adjuntaPart1); multipart.addbodypart (adjuntaPart2); message.setContent (multipart); // enviar transport.send (mensaje); system.out.println ("no particular Además, envíe el correo HTML
El autenticador se usa, se omite.
De hecho, es decirle al cliente destinatario que analice y renderice con HTML:
Paquete NO004_SEND HTML CORREO; import java.io.unsupportedEncodingException; import java.util.properties; import javax.mail.address; import javax.mail.message; import javax.mail.MessagingException; import javax.mail.multipart; import javax.mail.sission; javax.mail.internet.addressException; import javax.mail.internet.internetAddress; import javax.mail.internet.mimeBodyPart; import javax.mail.internet.mimemessage; import javax.Mail.internet.mimemultipart; clase pública HowTOSEnDMAIL {Public static vooid (] lanza DirectionException, MessionGingException, UnsupportedEncodingException {/* Información requerida*/String SMTP_Mail_Host = "Smtp.163.com"; // Esta dirección del servidor de correo, vaya al correo electrónico al que pertenece a Search String Eage_Username = "[email protected]"; String Correo electrónico_password = "Password"; String TO_EMAIL_ADDRESS_1 = "[email protected]";/* Información del servidor*/Properties props = new Properties (); props.put ("mail.smtp.host",,, ",,,",,, ",,,,,",,, ",,,,,",, ",,",, ",", ",", ". Smtp_mail_host); props.put ("mail.smtp.auth", "true");/* create session*/session session = session.getDefaultInstance (props, new SimpleAuthEnTeCator (correo electrónico_username, correo electrónico_password));/* Sender*/dirección [] SenderArray = nueva dirección [1]; SenderRay Mensaje*/MIMEMESSAGE Message = new Mimemessage (Session); Message.AddFrom (SenderArray); Message.Addrecipient (Message.RecipientType.to, new InternetDdress (to_email_address_1)); Message.setsubject ("Cómo enviar mensajes HTML");/*Text*/MimeBodyPart BodyPart = NewPart = neweN MimeBodyPart (); BodyPart.SetContent ("<h1> Loving You ... </h2>", "Text/Html; Charset = GB2312");/* Encapsula la información de varias partes del correo electrónico*/multipart multipart = new Mimemultipart (); multipart.addbodypart (BodyPart); Message.setContent (multipart); Transport.send (Mensaje); System.out.println ("No es particularmente desafortunado, puede consultar el correo electrónico. ");}} ¿O viene con una clase de herramientas?
El autenticador es seguro, utilizado y omitido.
Dado que hay muchas propiedades complicadas que deben establecerse, nombre con un atributo simple y fácil de usar para el suyo, así que use una clase de configuración
Paquete No005_Get Una clase de herramientas; import java.io.file; import java.util.arrayList; import java.util.list; public class MailsenderConfig {String privado Smtpmailhost; // Dirección del servidor de correo que admite el protocolo SMTP/* Se utiliza para iniciar sesión en el servidor de correo*/Nombre de usuario de cadena privada; contraseña de cadena privada; seno de cadena privada; // Contenido de cadena privada de título; // Contenido cadena privada deMail; // Mostrar correos electrónicos enviados desde esta lista privada de buzón <String> tomaLes; // Lista privada del destinatario <String> ccmails; // CC Lista privada <String> BCCMails; // Secret CC Private List <Sche> Adjuntos; // Adjunto public Public MailSenderConfig (String SmtpMailHost, String SUSPITA, String Content, String FromMail) {super (); SmtpMailHost = SmtpMailHost; this.subject = sujeto; this.content = content; this.fromMail = fromMail;} cadena pública getSmtpMailHost () {return smtpMailHost;} public void setSmtpMailHost (String smtpMailHost) {smtpmailHost = smtpMailHost;} public string getUsername () {return useName;} public void (string useNeNeN) UserName;} public String getPassword () {return Password;} public void setPassword (string contraseña) {this.password = contraseña;} public String getFromMail () {return fromMail;} public void setfrommail (string fromMail) {this.frommail = frhitMail;} public list <String> getTomails () {return Tomails;} public Public vide (} LITMAILS (LISTMAIL; tomaLas) {this.tomails = tomails;} public List <String> getCcMails () {return ccmails;} public void setccMails (list <string> ccmails) {this.ccmails = ccmails;} lista pública <tring> getbccMails () {return bccMails;} setbccmails (list <string> bccmails) {this.bccmails = bccmails;} public list <silt> getAttachments () {return ap. = sujeto;} public String getContent () {return content;} public void setContent (string content) {this.content = content;} public void addTomail (string mail) {if (this.tomails == null) {this.tomails = new ArrayList <String String> ();} {if (this.ccmails == null) {this.ccmails = new ArrayList <String> ();} this.ccmails.add (mail);} public void addbccmail (string mail) {if (this.bccmails == null) {this.bccMails = newe ArrayList <String> ();} this.bccmails.add (mail);} public void addattAtachment (archivo f) {if (this.attachments == null) {this.attachments = new ArrayList <archivo> ();} this.attachments.add (f);}} Finalmente, existe la parte de la clase de herramientas, que es principalmente responsable de varias cosas: realizar algunas acciones de inicialización de acuerdo con las reglas de correo de Java, traducir clases de configuración de atributos personalizados, configurarlas con reglas de correo Java y enviar correos electrónicos.
Además, debe mencionarse que debido a que las propiedades proporcionadas por la clase de herramientas son limitadas, más casos pueden no satisfacer las necesidades, por lo que se expone el imitación. Si no se satisfacen las necesidades, los desarrolladores pueden procesarlo y configurarlo ellos mismos, mientras que otras partes aún pueden usar la clase de herramientas.
Paquete No005_Get Una clase de herramientas; import java.io.file; import java.util.properties; import javax.activation.datahandler; import javax.activation.dataSource; import javax.activation.filedataSource; import javax.mail.address; import javax.mail.bodypart; import javax.Mail.message; javax.mail.MessagingException; import javax.mail.multipart; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.internetaddress; import javax.mail.internet.mimeBodyPart; import javax.mail.Mimememessage; import; import; importar; import javax.mail.internet.mimemultipart; import no002_what debo hacer si varios remitentes y destinatarios envían cc.simpleAuthenticator; public class mailsender {private mailsenderconfig c; private moMeMessage Message; public mailsender (mailsenderconfig config) emite excepción {super (); this.c = config; this.setconfig ();} @return*/private session initsessession () {Properties props = new Properties (); if (c.getSmtpMailHost ()! = Null && C.getSmtpMailHost (). Long ()> 0) {props.put ("mail.smtp.host", c.getSmtpMailhost ();} if (c.getusername ()! c.getUsername (). Longitud ()> 0 && C.getPassword ()! = NULL && C.GetPassword (). Longitud ()> 0) {props.put ("mail.smtp.auth", "true"); return.getDefaFultInstance (props, nuevo simpliguador (c.getUsername (), c.getPassword ()));} más {propss.put ("mail.smtp.auth", "false"); return session.getDefaultInstance (props);}}/*** establecer las propiedades de correo de Java*@throws excepción*/private void setConfig () lanza excepción {this.configValid (); session s = this.initsession; fromMailArray = nueva dirección [1]; frommailArray [0] = new InternetAddress (c.getFromMail ()); Message.AddFrom (fromMailArray); if (c.gettomails ()! = null && c.gettomails (). size ()> 0) {para (breby mail: c. c.gettomails ()) {Message.Addrecipient (Message.recipientType.to, nuevo Internetaddress (mail));}} if (c.getccmails ()! = null && c.getccmails (). size ()> 0) {for (string mail: c.getcccmails ()) {message.addrecipient (message.RecipienttyPe.cccc, neweN Internetaddress (mail));}} if (c.gettomails ()! = Null && c.gettomails (). Size ()> 0) {for (string mail: c.gettomails ()) {message.addrecipient (message.recipienttype.bcc, new InternetDdress (mail));} // Title de correo Message.SetSubject (c.getSubject ());/* text*/mimeBodyPart BodyPart = new MimeBodyPart (); BodyPart.SetContent (C.GetContent (), "Text/Html; Charset = GB2312");/* Información encapsular de cada parte del correo electrónico*/multipart = multiplicte = nuevo nuevo MimemUlTipart (); multipart.addbodypart (bodypart); message.setContent (multipart); bodyPart adjuntaPart = null; dataSource ds = null; if (c.getattachments ()! = Null && c.getattachments (). Size ()> 0) {para (archivo f: c.getAttAttachments ()) {neowPart (newePart () () d. New FiledataSource (f); adjuntaPart.SetDatahandler (nuevo Datahandler (DS)); adjuntaPart.SetFileName ("=? "? ="); multipart.AddBodyPart (adjuntaPart);}} message.setContent (multipart);}/*** Verificación de configuración*@throws Exception*/private void configValid () lanza excepción {if (c == null) {tirar nueva excepción ("El objeto de configuración está vacío");} if (c.getSmtpMailhost () == null c.getSmtpMailHost (). Longitud () == 0) {drogue la nueva excepción ("El servidor SMTP está vacío");} if (c.getFromMail () == null && c.getFromMail (). Long () == 0) {tirar nueva excepción ("El correo electrónico está vacío");} if (c.getTomails () == null || c.gettomails (). nueva excepción ("el correo de destinatario está vacío");} if (c.getSubject () == null || c.getSubject (). Long () == 0) {tire nueva excepción ("El título de correo electrónico está vacío");} if (c.getContent () == null || c.getContent (). longitud () == 0) {Drog MessionGingException*/public void send () lanza MessageGingException {transport.send (mensaje);}/*** establecer mimemessage para exponer este objeto para que los desarrolladores puedan establecer propiedades personalizadas por sí mismos* @return*/public mimemessage getMessage () {return Message;}/*** establecer mimemesaje para exponer este objeto para que los desarrolladores puedan establecer propiedades personalizadas por sí mismos* setMessage (mensaje mimemessage) {this.message = mensaje;}} Proporcione un paquete de clase de prueba simple no005_to una clase de herramienta; import java.io.file; import javax.mail.internet.mimemessage; public class testCall {public static void main (string [] args) arroja excepción {/* información requerida*/String SMTP_Mail_host = "Smtp.163.com"; // Esta dirección del servidor de correo, vaya al correo electrónico al que pertenece, y verifique la cadena de string email_username = "[email protected]"; string cague_password = "contraseña"; string to_email_address_1 = "[email protected]"; string to_email_address_2 = "[email protected]";/*usage 1, use normal*//*mailsenderfig c c = newconfig C MailSenderConfig (SMTP_MAIL_HOST, "Este es el correo de prueba para la prueba Java Mail Framework 3.", "Este es contenido 3.", Email_username); c.setUsername (correo electrónico_username); c.setpassword (correo electrónico_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccccmail (to_email_address_2); c.addcmail (a_adress_1); Archivo ("d: /1.txt")); mailsender ms = new Mailsender (c); ms.send (); system.out.println ("enviado ...");*//*Uso 2. En más casos, la configuración realizada por la clase de la herramienta no satisface las necesidades, por lo que Mimemessage está expuesto y*/Mailsender CONFIG C = New Mailsender (Smtp_MailtSear, esto es un testamento. para la prueba Java Mail Framework 4. "," Esto es contenido 4. ", Email_username); c.setUsername (correo electrónico_username); c.setpassword (correo electrónico_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccccmail (to_email_address_2); c.addcmail (a_adress_1); Archivo ("d: /1.txt")); Mailsender MS = new Mailsender (c); Mimemessage Message = ms.getMessage (); Message.SetContent ("Este es el contenido reemplazado por Mimemessage 4.", "Text/html; charset = utf-8"); ms.setMessage (mensaje); ms.send (); system.out.println ("enviado ...");}} Actualizar la clase de herramientas
En uso real, descubrí que al enviar correos electrónicos en lotes, el soporte de la clase de herramientas no es bueno. Por ejemplo, enviando 100 correos electrónicos, de acuerdo con la lógica de la clase de herramienta anterior, se establece una conexión para cada correo electrónico enviado. Entonces, ¿no son 100 correos electrónicos 100 veces? Este es un desperdicio grave.
Entonces, algunas actualizaciones se realizan hasta este punto:
El autenticador es seguro, utilizado y omitido.
Clase de configuración
import java.util.ArrayList; import java.util.list; public class MailSenderConfig {String private SmtpMailHost; // Dirección del servidor de correo que admite el protocolo SMTP/* Se utiliza para iniciar sesión en el servidor de correo*/Nombre de usuario de cadena privada; contraseña de cadena privada; seno de cadena privada; // Contenido de cadena privada de título; // Contenido cadena privada deMail; // Mostrar correos electrónicos enviados desde esta lista privada de buzón <String> tomaLes; // Lista privada del destinatario <String> ccmails; // Lista privada CCP <String> BCCMails; // Lista privada secreta de CCP <Anexo> archivos adjuntos; // accesorio privado cadena contentType = "text/html; charset = utf-8";/*** constructor* @param smtpmailhost smtp servidor* @param title title* @param Content Content (enviado en el formulario de "text/html; charset = utf-8" por predeterminado)* @param del comendador de comendedores*/public magsenderfig (string smtppm, string smtpm, string smtpm, string smtpps, string smtppse sujeto, contenido de cadena, cadena frommail) {super (); smtpmailhost = smtpmailhost; this.subject = sujeto; this.content = content; this.frommail = frommail;}/*** Constructor* @param SMTPMailHost SMTP Server* @param UserName Mail Server UserName @Param Password Mail Server contraseña* @param Title de sujeto* @Param Content Content (enviado en el formulario de "Text/Html; Charset = Utf-8" por predeterminado)* @Param FromMail Servidor*/Public Mails Smmtmer, SmtToster, SmtToster, SmtToster, SmtToster, SmtToster, SmtToster (Smtoster, SmtTost, SmtToster, SmtToster, SmtToster, SmtToster, SmtToster, SmtToster, Smtoster (StriVerfM de SmtToster (StretSer. String UserName, String Password, String Supt, String Content, String FromMail) {super (); smtpmailhost = smtpmailhost; this.Username = UserName; this.password = contraseña; this.subject = sujeto; this.content = content; this.fromMail = fromMail;} public void addTomail (string mail) {if (this.tomails == null) {this.tomails = new ArrayList <String> ();} this.tomails.add (correo);} public void addcccMail (String mail) {if (this.ccMailss == null) {this.cccMailss = neweNe ArrayList<String>();}this.ccMails.add(mail);}public void addBccMail (String mail) {if (this.bccMails == null) {this.bccMails = new ArrayList<String>();}this.bccMails.add(mail);}public void addAttachment (Attachment a) {if (this.attachments == null) {this.attachments = new ArrayList <Citchment> ();} this.attachments.add (a);}/** getter y setter*/public string getSmtpMailHost () {return smtpMailHost;} public void setsmtpMailhost (string smtpMailhost) {smtpMailhost = smtpAilhost; String getUsername () {return username;} public void setUsername (string username) {this.username = username;} public string getPassword () {return Password;} public void setpassword (string contraseña) {this.password = contraseña;} public string getFrfril fromMail;} public List <String> getTomails () {return tomails;} public void setTomails (list <String> tomails) {this.tomails = tomails;} public list <String> getccmails () {return ccMails;} public void setcccMails (list <string> ccmails) {this.ccMails;} public ccmails;} public List <String> getBccMails () {return bccmails;} public void setBcCmails (list <string> bccmails) {this.bccmails = bccmails;} lista pública <ettastment> getattachments () {retornos adjuntos;} settattachments (listments <Listment <Listment <Listment) {this.attachments = adjuntos;} public String getSubject () {return Sujem;} public void setSubject (string stem) {this.subject = saters;} public String getContent () {return content;} public void setContent (string content) {this.content = content;} public string getContentType () {return setttype;} setContentType(String contentType) {this.contentType = contentType;}} Attachment entity class import java.io.File;/*** Email attachment entity class*/public class Attachment {private File file;private String filename;public File getFile() {return file;}public void setFile(File file) {this.file = file;}public String getFileName () {if (filename == null || filename.trim (). {super();this.file = file;}} abstract sending class import java.util.Properties;import javax.mail.Session;public abstract class AbstractSessionMailSender {protected Session session;/*** Initialize Session* @return*/public static Session initSession(MailSenderConfig c) {Properties props = new Properties();if (c.getSMTPMailHost() != null && c.getSmtpMailHost (). Longitud ()> 0) {props.put ("mail.smtp.host", c.getSmtpMailHost ());} if (c.getusername ()! = null && c.getusername (). longitud ()> 0 && c.getPassword ()! = && C.getPassword (). {propss.put ("mail.smtp.auth", "true"); return session.getDefaultStance (props, new SimpleAuthEnTicator (c.getUsername (), c.getPassword ()));} else {props.put ("mail.smtp.auth", "falso"); return.getDefaFreAftinstance (props);}}/*** exp La capacidad de la sesión para admitir el envío por lotes de correos electrónicos/enviar múltiples correos electrónicos, la sesión se puede almacenar en caché. @return*/public session getSession () {return session;} public void setSession (sesión de sesión) {this.session = session;}} Enviar clase
import javax.activation.datahandler; import javax.activation.dataSource; import javax.activation.filedataSource; import javax.mail.address; import javax.mail.bodypart; import javax.mail.message; import javax.mail.messagexception; importar javax.mail. javax.mail.session; import javax.mail.transport; import javax.mail.internet.internetaddress; import javax.mail.internet.mimeBodyPart; import javax.mail.internet.mimemessage; import javax.mail.Mail.mimemultipart; import javax.internility; milliment; extiende AbstractSessionMailsender {private MailsenderConfig C; Mensaje privado de Mimemessage; public Mailsender (MailsenderConfig config) lanza la excepción {super (); this.c = config; this.setConfig ();} public Mailsender (MailsenderConfig config, sesión Session) lanza la excepción {super (); this.c = config; this.setConfig (); super.setsession (session);}/*** Enviar correo electrónico*@throws MessagingException*/public void send () lanza MessionGingException {transport.send (mensaje);}/*** Obtener Mimemessage y exponer este objeto para facilitar el desarrollador para establecer propiedades personalizadas (métodos que no están compatibles con esta clase de herramientas se pueden establecer por el desarrollador, y después de establecerles)* @return*/ getMessage() {return message;}/*** Set MimeMessage to expose this object to facilitate developers to set personalized properties (methods that are not supported by this tool class can be set by developers themselves, and after setting them up) * @return*/public void setMessage(MimeMessage message) {this.message = message;}/*** Set Java Mail attributes* @throws Exception*/private void setConfig () lanza la excepción {this.configValid (); if (session == null) {session = initsession (c);} mensaje = new mimemessage (session);/* sender*/dirección [] frommailArray = nueva dirección [1]; frommailArray [0] = new InternetDress (c.getRomMail ()); Mensaje. (c.gettomails ()! = null && c.gettomails (). size ()> 0) {for (string mail: c.gettomails ()) {message.addrecipient (message.recipienttype.to, nuevo InternetDdress (mail);}} if (c.getccMails ()! = null && c.getCccMails (). (String Mail: c.getccmails ()) {Message.addrecipient (message.recipientType.cc, new Internetaddress (mail));}} if (c.gettomails ()! = Null && c.gettomails (). Size ()> 0) {para (string mail: c. c.gettomails ()) {Message.addrecipient (Message.recipientType.bcc, new Internetaddress (mail));}} // Correo electrónico Message.setsubject (c.getSubject ());/* text*/mimeBodyPart Body = new MimeBodyPart (); BodyPart.SetContent (C.GetContent (), c.getCentTyPart ()/*); Parte del correo electrónico*/multipart multipart = new mimemUlTipart (); multipart.addbodypart (bodypart); message.setContent (multipart);/*adjunto*/bodyPart adjuntaPart = null; dataSource ds = null; if (c.getattachments ()! = null && c.getattAttachments (). size ()> 0) {para (para (() {AttachmentPart = new MimeBodyPart (); ds = new FiledataSource (a.getFile ()); adjuntaPart.SetDataHandler (nuevo DataHandler (ds)); apuntomePart.setFileName (mimeUtility.EncodeText (a.getFileName ())); multipart.addBodyPart (apaguándo Excepción ("El objeto de configuración está vacío");} if (c.getSmtpMailHost () == NULL || c.getSmtpMailHost (). Longitud () == 0) {drogue la nueva excepción ("El servidor SMTP está vacío");} if (c.getFromMail () == null && c.getFromMail (). Long () == 0) {tirar nueva excepción ("El correo electrónico está vacío");} if (c.getTomails () == null || c.gettomails (). nueva excepción ("El correo de destinatario está vacío");} if (c.getSubject () == null || c.getSubject (). Longitud () == 0) {Throw New Exception ("El título de correo electrónico está vacío");} if (c.getContent () == null || c.getContent (). longitud () == 0) {Drow New Exception ("Contenido de correo electrónico es vacío");}}}}}}}}}}}}}}}}}}}}}}}}} java.io.file; import javax.mail.session; import javax.mail.internet.mimemessage; import org.junit.test; public class ReadMe {/* Información requerida*/String SMTP_Mail_host = "Smtp.163.com"; // Esta dirección del servidor de correo, vaya a la página Descripción del servidor de correo al que pertenece, y verifique la cadena CORREACE_USERNAME = "[email protected]"; String Correo electrónico_password = "Password"; String to_Email_address_1 = "[email protected]";/* Opcional Information*/String To_Email_address_2 = "Ejemplo @163.com";@testppPeid CASE1 (). Situación 1, uso normal*/mailsenderconfig c = new MailsenderConfig (SMTP_Mail_host, "Este es un correo para la prueba Java Mail Framework en Case1.", "Esto es contenido". Email_username); c.setUsername (correo electrónico_username); c.setpassword (correo electrónico_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccccmail (to_email_address_2); c.addcmail (a_adress_1); Adjunto (nuevo archivo ("d: /1.txt"))); mailsender ms = new Mailsender (c); ms.send (); system.out.println ("enviado ...");}@testPublic void case2 () lanza la excepción {/* use 2. En más casos, la configuración realizada por la clase de herramientas no satisface las necesidades, por lo que MIMEMesssage se expone a la facilitación de la facilitación para establecer la facilitación para establecer la configuración de la personalización para establecer la costa de los establecimientos para establecer la costa de los establecimientos para establecer la costa de los establecimientos para establecer la costa de la costa para establecer la costa de la costa para establecer la costa de los establecimientos de la costa de la costa de la costa. Propiedades*/MailsenderConfig C = New MailSenderConfig (SMTP_MAIL_HOST, "Este es un correo para probar Java Mail Framework en Case2.", "Esto es contenido", Email_username); c.setUsername (correo electrónico_username); c.setpassword (correo electrónico_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccccmail (to_email_address_2); c.addcmail (a_adress_1); Adjunto (nuevo archivo ("d: /1.txt"))); Mailsender MS = new Mailsender (c); mimemessage mensaje = ms.getMessage (); message.setContent ("Este es el contenido reemplazado por Mimemessage en Case2". "text/html; charset = utf-8"); ms.setMessage (mensaje); ms.send (); system.out.println ("enviado ...");}@testPublic void case3 () lanza la excepción {/* uso de la situación 3, envía correos electrónicos varias veces, y la sesión puede estar en caché para que la sesión se comparta con la sesión de la misma hora para reducir el mismo tiempo. A la puntualidad de la sesión en caché*/MailsenderConfig C = New MailSenderConfig (SMTP_Mail_host, "Este es el primer correo para probar el marco de correo de Java para compartir la sesión en Case3.", "Esto es contenido". Email_username); c.setUsername (correo electrónico_username); c.setpassword (correo electrónico_password); c.addtomail (to_email_address_1); c.addtomail (to_email_address_2); c.addccccmail (to_email_address_2); c.addcmail (a_adress_1); Adjunto (nuevo archivo ("d: /1.txt"))); session session = mailsender.initsession (c); mailsender ms = new mailsender (c, sesión); ms.send (); c.setsubject ("Este es el segundo correo para la prueba Java Mail Framework para compartir la sesión en caso3"); sesión); ms.send (); system.out.println ("enviado ...");}} Resumir
En la actualidad, hay tantas necesidades que tengo. Si encuentro otras necesidades comunes en el futuro y tengo tiempo, las agregaré más.
Lo anterior es un resumen de las necesidades comunes de enviar correos electrónicos en Java presentados a usted. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!