Forum Discussion
webber965
Jan 17, 2024Copper Contributor
microsoft mail is working properly on localhost but not on the live server with nodemailer on
- package.json
- "proxy": {
- "/auth/google": {
- "target": "http://localhost:8000/"
- }
- },
ContactForm.jsx
- import React, { useState, useEffect } from 'react'
- const ContactForm = () => {
- const [fname, setFname] = useState("");
- const [lname, setLname] = useState("");
- const [email, setEmail] = useState("");
- const [subject, setSubject] = useState("");
- const [msg, setMsg] = useState("");
- const [message, setMessage] = useState('');
- useEffect(() => {
- setTimeout(function () {
- setMessage(true)
- }, 9000);
- },
- [message])
- const sendEmail = async (e) => {
- e.preventDefault();
- setFname("");
- setLname("");
- setEmail("");
- setSubject("");
- setMsg("");
- setMessage(`Thank you ${fname} ${lname} for enquiry. We will back to you asap.`);
- const res = await fetch("/register", {
- method: "POST",
- headers: {
- "Content-Type": "application/json"
- }, body: JSON.stringify({
- fname, lname, email, subject, msg
- })
- });
- console.log(res);
- }
- return (
- <>
- <div className="contact-form">
- <div className="contact-form-info">
- <div className="contact-title">
- <h3>TELL US YOUR PROJECT</h3>
- </div>
- <form id="contact-form">
- <div className="contact-page-form">
- <div className="contact-input">
- <div className="contact-inner">
- <input type="text" placeholder="First Name *" id="first-name" value={fname} onChange={(e) => setFname(e.target.value)} />
- </div>
- <div className="contact-inner">
- <input type="text" placeholder="Last Name *" id="last-name" value={lname} onChange={(e) => setLname(e.target.value)} />
- </div>
- <div className="contact-inner">
- <input type="text" placeholder="Email *" id="email" value={email} onChange={(e) => setEmail(e.target.value)} />
- </div>
- <div className="contact-inner">
- <input type="text" placeholder="Subject *" id="subject" value={subject} onChange={(e) => setSubject(e.target.value)} />
- </div>
- <div className="contact-inner contact-message">
- <textarea placeholder="Message *" value={msg} onChange={(e) => setMsg(e.target.value)}></textarea>
- </div>
- </div>
- <div className="contact-submit-btn">
- <button className="submit-btn" type="submit" onClick={sendEmail} >Send Email</button>
- <p className="form-messege pt-3">{message}</p>
- </div>
- </div>
- </form>
- </div>
- </div>
- </>
- )
- }
- export default ContactForm;
app.js
- const express = require("express");
- const app = express();
- const router = require("./routes/router");
- const cors = require("cors");
- const port = 8000
- app.use(express.json());
- app.use(cors());
- app.use(router);
- app.listen(port,()=>{
- console.log(`Server start on port no : ${port}`)
- })
router.js existing APKMINERS.COM
- const express = require("express");
- const router = new express.Router();
- const nodemailer = require("nodemailer");
- router.post("/register", (req, res) => {
- const { fname, lname, email, subject, msg } = req.body;
- try {
- let transporter = nodemailer.createTransport({
- host: "smtppro.zoho.in",
- port: 465,
- secure: true, // true for 465, false for other ports
- auth: {
- user: "email address removed for privacy reasons",
- pass: "myAppPassword",
- },
- });
- const mailOptions = {
- from: "email address removed for privacy reasons",
- cc: "email address removed for privacy reasons",
- to: email,
- subject: "Website Form",
- html: 'First Name : ' + fname + '<br>' +
- 'Last Name : ' + lname + '<br>' +
- 'Email : ' + email + '<br>' +
- 'Subject : ' + subject + '<br>' +
- 'Message : ' + msg
- }
- transporter.sendMail(mailOptions, (error, info) => {
- if (error) {
- console.log("Error", error)
- } else {
- console.log("Email sent" + info.response);
- res.status(201).json({ status: 201, info })
- }
- })
- } catch (error) {
- res.status(401).json({ status: 401, error })
- }
- });
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, …}
No RepliesBe the first to reply