0

When i try to send email with following code it shows me exception

Exception or Error:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
  nested exception is:
    javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

Code:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

    
  <%@ page import="java.util.*" %>
      <%@ page import="java.io.*" %>
      <%@ page import="java.lang.Object" %>
          <%@ page import="java.sql.*" %>
      <%@ page import="java.sql.Connection" %>
        <%@ page import="java.sql.DriverManager" %>
          <%@ page import="java.sql.SQLException" %> 


<%@ page import="java.util.*"%>
  <%@ page import="javax.mail.*"%>
  <%@ page import="javax.mail.internet.*"%>
  <%@ page import="javax.activation.*"%>


       <% /*
<?php
      use PHPMailer\PHPMailer\PHPMailer;
      use PHPMailer\PHPMailer\SMTP;
      use PHPMailer\PHPMailer\Exception;

      
      require "PHPMailer.php";
      require "Exception.php";
      require "SMTP.php";
      session_start();

      session_destroy();
      session_start();
      $_SESSION['mail']="";
?>
<?php
    $cookie_name = "mail";
    $cookie_value = $_POST['mail'];
    setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 
    // $_SESSION['mail']=$_COOKIE[$cookie_name];
?>
*/
%>
<!DOCTYPE html>
<html>
    <head>
        <!-- Basic Page Info -->
        <meta charset="utf-8" />
        <title>DeskApp - Bootstrap Admin Dashboard HTML Template</title>

        <!-- Site favicon -->
        <link
            rel="apple-touch-icon"
            sizes="180x180"
            href="vendors/images/apple-touch-icon.png"
        />
        <link
            rel="icon"
            type="image/png"
            sizes="32x32"
            href="vendors/images/favicon-32x32.png"
        />
        <link
            rel="icon"
            type="image/png"
            sizes="16x16"
            href="vendors/images/favicon-16x16.png"
        />

        <!-- Mobile Specific Metas -->
        <meta
            name="viewport"
            content="width=device-width, initial-scale=1, maximum-scale=1"
        />

        <!-- Google Font -->
        <link
            href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"
            rel="stylesheet"
        />
        <!-- CSS -->
        <link rel="stylesheet" type="text/css" href="vendors/styles/core.css" />
        <link
            rel="stylesheet"
            type="text/css"
            href="vendors/styles/icon-font.min.css"
        />
        <link rel="stylesheet" type="text/css" href="vendors/styles/style.css" />

        <!-- Global site tag (gtag.js) - Google Analytics -->
        <script
            async
            src="https://www.googletagmanager.com/gtag/js?id=G-GBZ3SGGX85"
        ></script>
        <script>
            window.dataLayer = window.dataLayer || [];
            function gtag() {
                dataLayer.push(arguments);
            }
            gtag("js", new Date());

            gtag("config", "G-GBZ3SGGX85");
        </script>
        <!-- Google Tag Manager -->
        <script>
            (function (w, d, s, l, i) {
                w[l] = w[l] || [];
                w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" });
                var f = d.getElementsByTagName(s)[0],
                    j = d.createElement(s),
                    dl = l != "dataLayer" ? "&l=" + l : "";
                j.async = true;
                j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
                f.parentNode.insertBefore(j, f);
            })(window, document, "script", "dataLayer", "GTM-NXZMQSS");
        </script>
        <!-- End Google Tag Manager -->
    </head>

    <body>
        <div class="login-header box-shadow">
            <div
                class="container-fluid d-flex justify-content-between align-items-center"
            >
                <div class="brand-logo">
                    <a href="login.php">
                        <img src="vendors/images/deskapp-logo.svg" alt="" />
                    </a>
                </div>
                <div class="login-menu">
                    <ul>
                        <li><a href="login.php">Login</a></li>
                    </ul>
                </div>
            </div>
        </div>
        <div
            class="login-wrap d-flex align-items-center flex-wrap justify-content-center"
        >
            <div class="container">
                <div class="row align-items-center">
                    <div class="col-md-6">
                        <img src="vendors/images/forgot-password.png" alt="" />
                    </div>
                    <div class="col-md-6">
                        <div class="login-box bg-white box-shadow border-radius-10">
                            <div class="login-title">
                                <h2 class="text-center text-primary">Forgot Password</h2>
                            </div>
                            <h6 class="mb-20">
                                Enter your email address to reset your password
                            </h6>
                            <form method="POST" action="forgot-password.jsp">
                                <div class="input-group custom">
                                    <input
                                        type="text"
                                        class="form-control form-control-lg"
                                        placeholder="Email"
                                        name="email"
                                    />
                                    <div class="input-group-append custom">
                                        <span class="input-group-text"
                                            ><i class="fa fa-envelope-o" aria-hidden="true"></i
                                        ></span>
                                    </div>
                                </div>
                                <div class="row align-items-center">
                                    <div class="col-5">
                                        <div class="input-group mb-0">
                                            <!--
                                            use code for form submit
                                            <input class="btn btn-primary btn-lg btn-block" type="submit" value="Submit">
                                        -->
                                            <button
                                                class="btn btn-primary btn-lg btn-block"
                                                name="reset" type="submit"
                                                >Submit</button
                                            >
                                            
                                        </div>
                                    </div>
                                    <div class="col-2">
                                        <div
                                            class="font-16 weight-600 text-center"
                                            data-color="#707373"
                                        >
                                            OR
                                        </div>
                                    </div>
                                    <div class="col-5">
                                        <div class="input-group mb-0">
                                            <a
                                                class="btn btn-outline-primary btn-lg btn-block"
                                                href="login.php"
                                                >Login</a
                                            >
                                        </div>
                                    </div>
                                </div>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        
        <!-- js -->
        <script src="vendors/scripts/core.js"></script>
        <script src="vendors/scripts/script.min.js"></script>
        <script src="vendors/scripts/process.js"></script>
        <script src="vendors/scripts/layout-settings.js"></script>
        <!-- Google Tag Manager (noscript) -->
        <noscript
            ><iframe
                src="https://www.googletagmanager.com/ns.html?id=GTM-NXZMQSS"
                height="0"
                width="0"
                style="display: none; visibility: hidden"
            ></iframe
        ></noscript>
        <!-- End Google Tag Manager (noscript) -->
    </body>
</html>



<%
    String Email="";
    try{


    // Database Connection Code
     String ConnectionUrl="jdbc:mysql://localhost:3306/";
    String DbName="rms";
    String DbUserName="root";
    String DbPassword="";
    Connection con=DriverManager.getConnection(ConnectionUrl+DbName,DbUserName,DbPassword);

    
    //Check Connection is Established or not
    if(con!=null)
    {
        System.out.println("Connection Successfully Established");
    }
    else
    {
        System.out.println("Connection Not Established");
    }
        
    Email=request.getParameter("email");
    
    Statement statement=con.createStatement();

        String Sql="SELECT * FROM tbluser where emailid='"+Email+"'";
     System.out.println(Sql);
        

    ResultSet resultset=statement.executeQuery(Sql);

    if(resultset!= null)
    {
    
    if(resultset.next())
    {
        
        

      


        
        if(resultset.getString("emailid").equals(Email)){
            //destory session if session is already set
            //session.invalidate();
            try{
              //Creating a result for getting status that messsage is delivered or not!
                String to="tomail@gmail.com";  
                String subject="Test Email";  
                String message="This is a test email sent from JSP.";  
                String from="mymail@gmail.com";  
                String pass="XXXXXXXX";  
                String host="smtp.gmail.com";  
                Properties props = System.getProperties();  
                props.put("mail.smtp.starttls.enable", "true");  
                props.put("mail.smtp.host", host);  
                props.put("mail.smtp.user", from);  
                props.put("mail.smtp.password", pass);  
                props.put("mail.smtp.port", "587");  
                props.put("mail.smtp.auth", "true");  
                Session se = Session.getDefaultInstance(props, null);  
                MimeMessage mimeMessage = new MimeMessage(se);  
                mimeMessage.setFrom(new InternetAddress(from));  
                mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(to));  
                mimeMessage.setSubject(subject);  
                mimeMessage.setText(message);  
                Transport transport = se.getTransport("smtp");  
                transport.connect(host, from, pass);  
                transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());  
                transport.close();  
            }
            catch(Exception e)
            {
                System.out.println(e);
            }

                   System.out.println("REsult");
                    //System.out.println(result);
        }
        else
        {
            System.out.println("Invalid Mail ID");
        }
    }
    else
    {
        System.out.println("Email is Invalid");
    }
    
    
    
    }
    }
    catch(Exception e){
        e.printStackTrace();
    }
%>

As you know Google is stop supporting less secure feature and i want to send mail with gmail then how should i implement it ??

And why this is showing error like Could not connect to port what is error??

Is there any error that i am using college/university public wifi??

I am expecting that i need to know why this error occur and what is solution of it?

  • You (or more correctly, your JVM) is using an outdated version of the SSL/TLS protocol and / or ciphersuite. Turn on Java SSL debugging to get more information. See https://stackoverflow.com/questions/71563289/how-can-i-get-debug-messages-from-javas-ssl-handshake. – Stephen C Feb 06 '23 at 08:01
  • Which Java version are you using? – Mark Rotteveel Feb 06 '23 at 09:01
  • java version 19 –  Feb 06 '23 at 15:37

0 Answers0