Zoho mail is working properly on localhost but not on the live server with nodemailer

Zoho mail is working properly on localhost but not on the live server with nodemailer

  1. package.json

  2.       "proxy": {
  3.         "/auth/google": {
  4.           "target": "http://localhost:8000/"
  5.         }
  6.       },
ContactForm.jsx

  1. import React, { useState, useEffect } from 'react'

  2. const ContactForm = () => {

  3.     const [fname, setFname] = useState("");
  4.     const [lname, setLname] = useState("");
  5.     const [email, setEmail] = useState("");
  6.     const [subject, setSubject] = useState("");
  7.     const [msg, setMsg] = useState("");
  8.     const [message, setMessage] = useState('');

  9.     useEffect(() => {
  10.         setTimeout(function () {
  11.             setMessage(true)
  12.         }, 9000);
  13.     },
  14.         [message])


  15.     const sendEmail = async (e) => {
  16.         e.preventDefault();


  17.         setFname("");
  18.         setLname("");
  19.         setEmail("");
  20.         setSubject("");
  21.         setMsg("");

  22.         setMessage(`Thank you ${fname} ${lname} for enquiry. We will back to you asap.`);

  23.         const res = await fetch("/register", {
  24.             method: "POST",
  25.             headers: {
  26.                 "Content-Type": "application/json"
  27.             }, body: JSON.stringify({
  28.                 fname, lname, email, subject, msg
  29.             })
  30.         });

  31.         console.log(res);


  32.     }


  33.     return (
  34.         <>
  35.             <div className="contact-form">
  36.                 <div className="contact-form-info">
  37.                     <div className="contact-title">
  38.                         <h3>TELL US YOUR PROJECT</h3>
  39.                     </div>
  40.                     <form id="contact-form">
  41.                         <div className="contact-page-form">
  42.                             <div className="contact-input">
  43.                                 <div className="contact-inner">
  44.                                     <input type="text" placeholder="First Name *" id="first-name" value={fname} onChange={(e) => setFname(e.target.value)} />
  45.                                 </div>
  46.                                 <div className="contact-inner">
  47.                                     <input type="text" placeholder="Last Name *" id="last-name" value={lname} onChange={(e) => setLname(e.target.value)} />
  48.                                 </div>
  49.                                 <div className="contact-inner">
  50.                                     <input type="text" placeholder="Email *" id="email" value={email} onChange={(e) => setEmail(e.target.value)} />
  51.                                 </div>
  52.                                 <div className="contact-inner">
  53.                                     <input type="text" placeholder="Subject *" id="subject" value={subject} onChange={(e) => setSubject(e.target.value)} />
  54.                                 </div>
  55.                                 <div className="contact-inner contact-message">
  56.                                     <textarea placeholder="Message *" value={msg} onChange={(e) => setMsg(e.target.value)}></textarea>
  57.                                 </div>
  58.                             </div>
  59.                             <div className="contact-submit-btn">
  60.                                 <button className="submit-btn" type="submit" onClick={sendEmail} >Send Email</button>
  61.                                 <p className="form-messege pt-3">{message}</p>
  62.                             </div>
  63.                         </div>
  64.                     </form>
  65.                 </div>
  66.             </div>
  67.         </>
  68.     )
  69. }

  70. export default ContactForm;
app.js

  1. const express = require("express");
  2. const app = express();
  3. const router = require("./routes/router");
  4. const cors = require("cors");

  5. const port = 8000
  6. app.use(express.json());
  7. app.use(cors());
  8. app.use(router);

  9. app.listen(port,()=>{
  10.     console.log(`Server start on port no : ${port}`)
  11. })
router.js existing APKBARK.COM
  1. const express = require("express");
  2. const router = new express.Router();
  3. const nodemailer = require("nodemailer");

  4. router.post("/register", (req, res) => {

  5.     const { fname, lname, email, subject, msg } = req.body;


  6.     try {
  7.         let transporter = nodemailer.createTransport({
  8.             host: "smtppro.zoho.in",
  9.             port: 465,
  10.             secure: true,   // true for 465, false for other ports
  11.             auth: {
  12.                 user: "info@mydomain.com",
  13.                 pass: "myAppPassword",
  14.             },
  15.         });

  16.         const mailOptions = {
  17.             from: "info@mydomain.com",
  18.             cc: "info@mydomain.com",
  19.             to: email,
  20.             subject: "Website Form",
  21.             html: 'First Name : ' + fname + '<br>' +
  22.                 'Last Name : ' + lname + '<br>' +
  23.                 'Email : ' + email + '<br>' +
  24.                 'Subject : ' + subject + '<br>' +
  25.                 'Message : ' + msg
  26.         }

  27.         transporter.sendMail(mailOptions, (error, info) => {
  28.             if (error) {
  29.                 console.log("Error", error)
  30.             } else {
  31.                 console.log("Email sent" + info.response);
  32.                 res.status(201).json({ status: 201, info })
  33.             }
  34.         })
  35.     } catch (error) {
  36.         res.status(401).json({ status: 401, error })
  37.     }
  38. });

module.exports = router;
I have been using nodemailer to send emails from my react and node js app, it used to work perfectly on localhost. I deployed to my hosting, it didn't work. Giving this.

Response {type: 'basic', url: 'https://example.com/register', redirected: false, status: 200, ok: true, …}