List of usage examples for javax.mail Session getInstance
public static Session getInstance(Properties props, Authenticator authenticator)
From source file:org.openmrs.api.context.Context.java
/** * Gets the mail session required by the mail message service. This function forces * authentication via the getAdministrationService() method call * /*w w w . j ava 2 s .c o m*/ * @return a java mail session */ private static javax.mail.Session getMailSession() { if (mailSession == null) { AdministrationService adminService = getAdministrationService(); Properties props = new Properties(); props.setProperty("mail.transport.protocol", adminService.getGlobalProperty("mail.transport_protocol")); props.setProperty("mail.smtp.host", adminService.getGlobalProperty("mail.smtp_host")); props.setProperty("mail.smtp.port", adminService.getGlobalProperty("mail.smtp_port")); props.setProperty("mail.from", adminService.getGlobalProperty("mail.from")); props.setProperty("mail.debug", adminService.getGlobalProperty("mail.debug")); props.setProperty("mail.smtp.auth", adminService.getGlobalProperty("mail.smtp_auth")); Authenticator auth = new Authenticator() { @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(getAdministrationService().getGlobalProperty("mail.user"), getAdministrationService().getGlobalProperty("mail.password")); } }; mailSession = Session.getInstance(props, auth); } return mailSession; }
From source file:de.mendelson.comm.as2.message.AS2MessageCreation.java
/**Builds up a new message from the passed message parts * @param messageType one of the message types definfed in the class AS2Message *///www . jav a 2 s . c om public AS2Message createMessage(Partner sender, Partner receiver, AS2Payload[] payloads, int messageType, String messageId) throws Exception { if (messageId == null) { messageId = UniqueId.createMessageId(sender.getAS2Identification(), receiver.getAS2Identification()); } BCCryptoHelper cryptoHelper = new BCCryptoHelper(); AS2MessageInfo info = new AS2MessageInfo(); info.setMessageType(messageType); info.setSenderId(sender.getAS2Identification()); info.setReceiverId(receiver.getAS2Identification()); info.setSenderEMail(sender.getEmail()); info.setMessageId(messageId); info.setDirection(AS2MessageInfo.DIRECTION_OUT); info.setSignType(receiver.getSignType()); info.setEncryptionType(receiver.getEncryptionType()); info.setRequestsSyncMDN(receiver.isSyncMDN()); if (!receiver.isSyncMDN()) { info.setAsyncMDNURL(sender.getMdnURL()); } info.setSubject(receiver.getSubject()); try { info.setSenderHost(InetAddress.getLocalHost().getCanonicalHostName()); } catch (UnknownHostException e) { //nop } //create message object to return AS2Message message = new AS2Message(info); //stores all the available body parts that have been prepared List<MimeBodyPart> contentPartList = new ArrayList<MimeBodyPart>(); for (AS2Payload as2Payload : payloads) { //add payload message.addPayload(as2Payload); if (this.runtimeConnection != null) { MessageAccessDB messageAccess = new MessageAccessDB(this.configConnection, this.runtimeConnection); messageAccess.initializeOrUpdateMessage(info); } //no MIME message: single payload, unsigned, no CEM if (info.getSignType() == AS2Message.SIGNATURE_NONE && payloads.length == 1 && info.getMessageType() != AS2Message.MESSAGETYPE_CEM) { return (this.createMessageNoMIME(message, receiver)); } //MIME message MimeBodyPart bodyPart = new MimeBodyPart(); String contentType = null; if (as2Payload.getContentType() == null) { contentType = receiver.getContentType(); } else { contentType = as2Payload.getContentType(); } bodyPart.setDataHandler(new DataHandler(new ByteArrayDataSource(as2Payload.getData(), contentType))); bodyPart.addHeader("Content-Type", contentType); if (as2Payload.getContentId() != null) { bodyPart.addHeader("Content-ID", as2Payload.getContentId()); } if (receiver.getContentTransferEncoding() == AS2Message.CONTENT_TRANSFER_ENCODING_BASE64) { bodyPart.addHeader("Content-Transfer-Encoding", "base64"); } else { bodyPart.addHeader("Content-Transfer-Encoding", "binary"); } //prepare filename to not violate the MIME header rules if (as2Payload.getOriginalFilename() == null) { as2Payload.setOriginalFilename(new File(as2Payload.getPayloadFilename()).getName()); } String newFilename = as2Payload.getOriginalFilename().replace(' ', '_'); newFilename = newFilename.replace('@', '_'); newFilename = newFilename.replace(':', '_'); newFilename = newFilename.replace(';', '_'); newFilename = newFilename.replace('(', '_'); newFilename = newFilename.replace(')', '_'); bodyPart.addHeader("Content-Disposition", "attachment; filename=" + newFilename); contentPartList.add(bodyPart); } Part contentPart = null; //sigle attachment? No CEM? Every CEM is in a multipart/related container if (contentPartList.size() == 1 && info.getMessageType() != AS2Message.MESSAGETYPE_CEM) { contentPart = contentPartList.get(0); } else { //build up a new MimeMultipart container for the multiple attachments, content-type //is "multipart/related" MimeMultipart multipart = null; //CEM messages are always in a multipart container (even the response which contains only a single //payload) with the subtype "application/ediint-cert-exchange+xml". if (info.getMessageType() == AS2Message.MESSAGETYPE_CEM) { multipart = new MimeMultipart("related; type=\"application/ediint-cert-exchange+xml\""); } else { multipart = new MimeMultipart("related"); } for (MimeBodyPart bodyPart : contentPartList) { multipart.addBodyPart(bodyPart); } contentPart = new MimeMessage(Session.getInstance(System.getProperties(), null)); contentPart.setContent(multipart, multipart.getContentType()); ((MimeMessage) contentPart).saveChanges(); } //should the content be compressed and enwrapped or just enwrapped? if (receiver.getCompressionType() == AS2Message.COMPRESSION_ZLIB) { info.setCompressionType(AS2Message.COMPRESSION_ZLIB); int uncompressedSize = contentPart.getSize(); contentPart = this.compressPayload(receiver, contentPart); int compressedSize = contentPart.getSize(); //sometimes size() is unable to determine the size of the compressed body part and will return -1. Dont log the //compression ratio in this case. if (uncompressedSize == -1 || compressedSize == -1) { if (this.logger != null) { this.logger.log(Level.INFO, this.rb.getResourceString("message.compressed.unknownratio", new Object[] { info.getMessageId() }), info); } } else { if (this.logger != null) { this.logger.log(Level.INFO, this.rb.getResourceString("message.compressed", new Object[] { info.getMessageId(), AS2Tools.getDataSizeDisplay(uncompressedSize), AS2Tools.getDataSizeDisplay(compressedSize) }), info); } } } //compute content mic. Try to use sign digest as hash alg. For unsigned messages take sha-1 String digestOID = null; if (info.getSignType() == AS2Message.SIGNATURE_MD5) { digestOID = cryptoHelper.convertAlgorithmNameToOID(BCCryptoHelper.ALGORITHM_MD5); } else { digestOID = cryptoHelper.convertAlgorithmNameToOID(BCCryptoHelper.ALGORITHM_SHA1); } String mic = cryptoHelper.calculateMIC(contentPart, digestOID); if (info.getSignType() == AS2Message.SIGNATURE_MD5) { info.setReceivedContentMIC(mic + ", md5"); } else { info.setReceivedContentMIC(mic + ", sha1"); } this.enwrappInMessageAndSign(message, contentPart, sender, receiver); //encryption requested for the receiver? if (info.getEncryptionType() != AS2Message.ENCRYPTION_NONE) { String cryptAlias = this.encryptionCertManager .getAliasByFingerprint(receiver.getCryptFingerprintSHA1()); this.encryptDataToMessage(message, cryptAlias, info.getEncryptionType(), receiver); } else { message.setRawData(message.getDecryptedRawData()); if (this.logger != null) { this.logger.log(Level.INFO, this.rb.getResourceString("message.notencrypted", new Object[] { info.getMessageId() }), info); } } return (message); }
From source file:main.java.vasolsim.common.GenericUtils.java
/** * Tests if a given SMTP configuration is valid. It will validate addresses and the port. Then it will test * connectivity of the smtp address. Lastly, it will AUTH to smtp server and ensure the information is good. * * @param address the SMTP address/*w ww .j a va2 s. c om*/ * @param port the SMTP port * @param email the email address * @param password the email address password * @param notify if popup dialogs will appear carrying the servers unsuccessful response message * * @return if the AUTH was successful */ public static boolean isValidSMTPConfiguration(String address, int port, String email, byte[] password, boolean notify) { if (!isValidAddress(address) || port <= 0 || !isValidEmail(email) || password.length == 0) return false; try { Properties smtpProperties = new Properties(); smtpProperties.put("mail.smtp.starttls.enable", "true"); smtpProperties.put("mail.smtp.auth", "true"); Session session = Session.getInstance(smtpProperties, null); Transport transport = session.getTransport("smtp"); transport.connect(address, port, email, new String(password)); transport.close(); return true; } catch (Exception e) { if (notify) { PopupManager.showMessage("Cause:\n" + e.getCause() + "\n\nMessage:\n" + e.getMessage(), "Bad SMTP"); System.out.println(e.getCause()); System.out.println(e.getMessage()); } return false; } }
From source file:org.georchestra.console.ws.emails.EmailController.java
/** * Send EmailEntry to smtp server/*from w w w . j ava 2s . c om*/ * * @param email email to send * @throws NameNotFoundException if recipient cannot be found in LDAP server * @throws DataServiceException if LDAP server is not available * @throws MessagingException if some field of email cannot be encoded (malformed email address) */ private void send(EmailEntry email) throws NameNotFoundException, DataServiceException, MessagingException { final Session session = Session.getInstance(System.getProperties(), null); session.getProperties().setProperty("mail.smtp.host", this.emailFactory.getSmtpHost()); session.getProperties().setProperty("mail.smtp.port", (new Integer(this.emailFactory.getSmtpPort())).toString()); final MimeMessage message = new MimeMessage(session); Account recipient = this.accountDao.findByUID(email.getRecipient()); InternetAddress[] senders = { new InternetAddress(this.accountDao.findByUID(email.getSender()).getEmail()) }; message.addFrom(senders); message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient.getEmail())); message.setSubject(email.getSubject()); message.setHeader("Date", (new MailDateFormat()).format(email.getDate())); // Mail content Multipart multiPart = new MimeMultipart("alternative"); // attachments for (Attachment att : email.getAttachments()) { MimeBodyPart mbp = new MimeBodyPart(); mbp.setDataHandler(new DataHandler(new ByteArrayDataSource(att.getContent(), att.getMimeType()))); mbp.setFileName(att.getName()); multiPart.addBodyPart(mbp); } // html part MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(email.getBody(), "text/html; charset=utf-8"); multiPart.addBodyPart(htmlPart); message.setContent(multiPart); // Send message Transport.send(message); }
From source file:org.georchestra.ldapadmin.ws.emails.EmailController.java
/** * Send EmailEntry to smtp server/*from ww w . java2 s . co m*/ * * @param email email to send * @throws NameNotFoundException if recipient cannot be found in LDAP server * @throws DataServiceException if LDAP server is not available * @throws MessagingException if some field of email cannot be encoded (malformed email address) */ private void send(EmailEntry email) throws NameNotFoundException, DataServiceException, MessagingException { final Properties props = System.getProperties(); props.put("mail.smtp.host", this.emailFactory.getSmtpHost()); props.put("mail.protocol.port", this.emailFactory.getSmtpPort()); final Session session = Session.getInstance(props, null); final MimeMessage message = new MimeMessage(session); Account recipient = this.accountDao.findByUID(email.getRecipient()); InternetAddress[] senders = { new InternetAddress(this.accountDao.findByUID(email.getSender()).getEmail()) }; message.addFrom(senders); message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient.getEmail())); message.setSubject(email.getSubject()); message.setHeader("Date", (new MailDateFormat()).format(email.getDate())); // Mail content Multipart multiPart = new MimeMultipart("alternative"); // attachments for (Attachment att : email.getAttachments()) { MimeBodyPart mbp = new MimeBodyPart(); mbp.setDataHandler(new DataHandler(new ByteArrayDataSource(att.getContent(), att.getMimeType()))); mbp.setFileName(att.getName()); multiPart.addBodyPart(mbp); } // html part MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(email.getBody(), "text/html; charset=utf-8"); multiPart.addBodyPart(htmlPart); message.setContent(multiPart); // Send message Transport.send(message); }
From source file:com.emc.kibana.emailer.KibanaEmailer.java
private static void sendFileEmail(String security) { final String username = smtpUsername; final String password = smtpPassword; // Get system properties Properties properties = System.getProperties(); // Setup mail server properties.setProperty("mail.smtp.host", smtpHost); if (security.equals(SMTP_SECURITY_TLS)) { properties.put("mail.smtp.auth", "true"); properties.put("mail.smtp.starttls.enable", "true"); properties.put("mail.smtp.host", smtpHost); properties.put("mail.smtp.port", smtpPort); } else if (security.equals(SMTP_SECURITY_SSL)) { properties.put("mail.smtp.socketFactory.port", smtpPort); properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); properties.put("mail.smtp.auth", "true"); properties.put("mail.smtp.port", smtpPort); }//from w w w.ja v a 2 s .com Session session = Session.getInstance(properties, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { // Create a default MimeMessage object. MimeMessage message = new MimeMessage(session); // Set From: header field of the header. message.setFrom(new InternetAddress(sourceAddress)); // Set To: header field of the header. for (String destinationAddress : destinationAddressList) { message.addRecipient(Message.RecipientType.TO, new InternetAddress(destinationAddress)); } // Set Subject: header field message.setSubject(mailTitle); // Create the message part BodyPart messageBodyPart = new MimeBodyPart(); StringBuffer bodyBuffer = new StringBuffer(mailBody); if (!kibanaUrls.isEmpty()) { bodyBuffer.append("\n\n"); } // Add urls info to e-mail for (Map<String, String> kibanaUrl : kibanaUrls) { // Add urls to e-mail String urlName = kibanaUrl.get(NAME_KEY); String reportUrl = kibanaUrl.get(URL_KEY); if (urlName != null && reportUrl != null) { bodyBuffer.append("- ").append(urlName).append(": ").append(reportUrl).append("\n\n\n"); } } // Fill the message messageBodyPart.setText(bodyBuffer.toString()); // Create a multipart message Multipart multipart = new MimeMultipart(); // Set text message part multipart.addBodyPart(messageBodyPart); // Part two is attachments for (Map<String, String> kibanaScreenCapture : kibanaScreenCaptures) { messageBodyPart = new MimeBodyPart(); String absoluteFilename = kibanaScreenCapture.get(ABSOLUE_FILE_NAME_KEY); String filename = kibanaScreenCapture.get(FILE_NAME_KEY); DataSource source = new FileDataSource(absoluteFilename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); } // Send the complete message parts message.setContent(multipart); // Send message Transport.send(message); logger.info("Sent mail message successfully"); } catch (MessagingException mex) { throw new RuntimeException(mex); } }
From source file:net.sourceforge.msscodefactory.cfasterisk.v2_4.CFAsteriskSMWar.CFAsteriskSMWarRequestResetPasswordHtml.java
protected void sendPasswordResetEMail(HttpServletRequest request, ICFSecuritySecUserObj resetUser, ICFSecurityClusterObj cluster) throws AddressException, MessagingException, NamingException { final String S_ProcName = "sendPasswordResetEMail"; Properties props = System.getProperties(); String clusterDescription = cluster.getRequiredDescription(); Context ctx = new InitialContext(); String smtpEmailFrom = (String) ctx.lookup("java:comp/env/CFAsterisk24SmtpEmailFrom"); if ((smtpEmailFrom == null) || (smtpEmailFrom.length() <= 0)) { throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0, "JNDI lookup for CFAsterisk24SmtpEmailFrom"); }//from ww w.ja va 2 s.c o m smtpUsername = (String) ctx.lookup("java:comp/env/CFAsterisk24SmtpUsername"); if ((smtpUsername == null) || (smtpUsername.length() <= 0)) { throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0, "JNDI lookup for CFAsterisk24SmtpUsername"); } smtpPassword = (String) ctx.lookup("java:comp/env/CFAsterisk24SmtpPassword"); if ((smtpPassword == null) || (smtpPassword.length() <= 0)) { throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0, "JNDI lookup for CFAsterisk24SmtpPassword"); } Session emailSess = Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(smtpUsername, smtpPassword); } }); String thisURI = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getRequestURI().toString(); int lastSlash = thisURI.lastIndexOf('/'); String baseURI = thisURI.substring(0, lastSlash); UUID resetUUID = resetUser.getOptionalPasswordResetUuid(); String msgBody = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n" + "<HTML>\n" + "<BODY>\n" + "<p>\n" + "You requested a password reset for " + resetUser.getRequiredEMailAddress() + " used for accessing " + clusterDescription + ".\n" + "<p>" + "Please click on the following link to reset your password:<br>\n" + "<A HRef=\"" + baseURI + "/CFAsteriskSMWarResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "\">" + baseURI + "/CFAsteriskSMWarResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "</A>\n" + "<p>" + "Or click on the following link to cancel the reset request:<br>\n" + "<A HRef=\"" + baseURI + "/CFAsteriskSMWarCancelResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "\">" + baseURI + "/CFAsteriskSMWarCancelResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "</A>\n" + "</BODY>\n" + "</HTML>\n"; MimeMessage msg = new MimeMessage(emailSess); msg.setFrom(new InternetAddress(smtpEmailFrom)); InternetAddress mailTo[] = InternetAddress.parse(resetUser.getRequiredEMailAddress(), false); msg.setRecipient(Message.RecipientType.TO, mailTo[0]); msg.setSubject("You requested a password reset for your account with " + clusterDescription + "?"); msg.setContent(msgBody, "text/html"); msg.setSentDate(new Date()); msg.saveChanges(); Transport.send(msg); }
From source file:net.sourceforge.msscodefactory.cfasterisk.v2_2.CFAstSMWar.CFAstSMWarRequestResetPasswordHtml.java
protected void sendPasswordResetEMail(HttpServletRequest request, ICFAstSecUserObj resetUser, ICFAstClusterObj cluster) throws AddressException, MessagingException, NamingException { final String S_ProcName = "sendPasswordResetEMail"; Properties props = System.getProperties(); String clusterDescription = cluster.getRequiredDescription(); Context ctx = new InitialContext(); String smtpEmailFrom = (String) ctx.lookup("java:comp/env/CFAst22SmtpEmailFrom"); if ((smtpEmailFrom == null) || (smtpEmailFrom.length() <= 0)) { throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0, "JNDI lookup for CFAst22SmtpEmailFrom"); }// w ww . j a va2 s.co m smtpUsername = (String) ctx.lookup("java:comp/env/CFAst22SmtpUsername"); if ((smtpUsername == null) || (smtpUsername.length() <= 0)) { throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0, "JNDI lookup for CFAst22SmtpUsername"); } smtpPassword = (String) ctx.lookup("java:comp/env/CFAst22SmtpPassword"); if ((smtpPassword == null) || (smtpPassword.length() <= 0)) { throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0, "JNDI lookup for CFAst22SmtpPassword"); } Session emailSess = Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(smtpUsername, smtpPassword); } }); String thisURI = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getRequestURI().toString(); int lastSlash = thisURI.lastIndexOf('/'); String baseURI = thisURI.substring(0, lastSlash); UUID resetUUID = resetUser.getOptionalPasswordResetUuid(); String msgBody = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n" + "<HTML>\n" + "<BODY>\n" + "<p>\n" + "You requested a password reset for " + resetUser.getRequiredEMailAddress() + " used for accessing " + clusterDescription + ".\n" + "<p>" + "Please click on the following link to reset your password:<br>\n" + "<A HRef=\"" + baseURI + "/CFAstSMWarResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "\">" + baseURI + "/CFAstSMWarResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "</A>\n" + "<p>" + "Or click on the following link to cancel the reset request:<br>\n" + "<A HRef=\"" + baseURI + "/CFAstSMWarCancelResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "\">" + baseURI + "/CFAstSMWarCancelResetPasswordHtml?ResetUUID=" + resetUUID.toString() + "</A>\n" + "</BODY>\n" + "</HTML>\n"; MimeMessage msg = new MimeMessage(emailSess); msg.setFrom(new InternetAddress(smtpEmailFrom)); InternetAddress mailTo[] = InternetAddress.parse(resetUser.getRequiredEMailAddress(), false); msg.setRecipient(Message.RecipientType.TO, mailTo[0]); msg.setSubject("You requested a password reset for your account with " + clusterDescription + "?"); msg.setContent(msgBody, "text/html"); msg.setSentDate(new Date()); msg.saveChanges(); Transport.send(msg); }
From source file:org.masukomi.aspirin.core.RemoteDelivery.java
public void run() { try {// w ww. j a v a2 s .c om Session session = Session.getInstance(System.getProperties(), null); deliver(qi, session); } catch (Exception e) { log.error(e); throw new RuntimeException(e); } }
From source file:com.intranet.intr.proveedores.EmpControllerGestion.java
public void enviarProvUC(proveedores proveedor) { String cuerpo = ""; String servidorSMTP = "smtp.1and1.es"; String puertoEnvio = "465"; Properties props = new Properties();//propiedades a agragar props.put("mail.smtp.user", miCorreo);//correo origen props.put("mail.smtp.host", servidorSMTP);//tipo de servidor props.put("mail.smtp.port", puertoEnvio);//puesto de salida props.put("mail.smtp.starttls.enable", "true");//inicializar el servidor props.put("mail.smtp.auth", "true");//autentificacion props.put("mail.smtp.password", "angel2010");//autentificacion props.put("mail.smtp.socketFactory.port", puertoEnvio);//activar el puerto props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.socketFactory.fallback", "false"); SecurityManager security = System.getSecurityManager(); Authenticator auth = new autentificadorSMTP();//autentificar el correo Session session = Session.getInstance(props, auth);//se inica una session // session.setDebug(true); try {//from w w w. j av a 2 s .co m // Creamos un objeto mensaje tipo MimeMessage por defecto. MimeMessage mensajeE = new MimeMessage(session); // Asignamos el de o from? al header del correo. mensajeE.setFrom(new InternetAddress(miCorreo)); // Asignamos el para o to? al header del correo. mensajeE.addRecipient(Message.RecipientType.TO, new InternetAddress(proveedor.getEmail())); // Asignamos el asunto mensajeE.setSubject("Su Perfil Personal"); // Creamos un cuerpo del correo con ayuda de la clase BodyPart //BodyPart cuerpoMensaje = new MimeBodyPart(); // Asignamos el texto del correo String text = "Acceda con usuario: " + proveedor.getUsuario() + " y contrasea: " + proveedor.getContrasenna() + ", al siguiente link http://decorakia.ddns.net/Intranet/login.htm"; // Asignamos el texto del correo cuerpo = "<!DOCTYPE html><html>" + "<head> " + "<title></title>" + "</head>" + "<body>" + "<img src='http://decorakia.ddns.net/unnamed.png'>" + "<p>" + text + "</p>" + "</body>" + "</html>"; mensajeE.setContent("<!DOCTYPE html>" + "<html>" + "<head> " + "<title></title>" + "</head>" + "<body>" + "<img src='http://decorakia.ddns.net/unnamed.png'>" + "<p>" + text + "</p>" + "</body>" + "</html>", "text/html"); //mensaje.setText(text); // Creamos un multipart al correo // Enviamos el correo Transport.send(mensajeE); System.out.println("Mensaje enviado"); } catch (MessagingException e) { e.printStackTrace(); } }