【问题标题】:User ID required to send mail with Email.js使用 Email.js 发送邮件所需的用户 ID
【发布时间】:2022-07-20 00:07:12
【问题描述】:

所以我试图在我的作品集中实现这个电子邮件功能,我将在底部插入当前代码。但是我不断收到一条错误消息,说需要用户 ID

我去了该站点并查找了我的用户 ID,根据一些文档,用户 ID 应该放在 init() 之后,但没有用户 ID。我通过电子邮件发送了支持,他们说用户 ID 已被公钥替换。这是我最初在那个空间中所拥有的,但这是我收到的错误。

这是我当前尝试发送邮件时生成错误的代码

import React, { useState, useRef } from "react";
import emailjs from "emailjs-com";
import { init } from "@emailjs/browser";

import "./contact.css";
init("wcnCiEjf9yoZnUt0e");
export default function Contact() {
  const [name, setname] = useState("");

  const [email, setemail] = useState("");
  const form = useRef();
  const [message, setmessage] = useState("");
  const sendEmail = (e) => {
    e.preventDefault();
    // console.log(e);
    console.log(form.current);

    const templateparams = {
      from_name: name + " " + email,
      to_name: "tamaraandreawilburn@gmail.com",
      feedback: message,
    };
    emailjs.send("service_e0zkrad", "template_7qrzf2e", templateparams).then(
      function (response) {
        console.log("SUCCESS!", response.status, response.text);
      },
      function (error) {
        console.log("FAILED...", error);
      }
    );
  };

  return (
    <>
      <div>
        <div className="contact-me-card row">
          <div className="col-lg-6 col-md-5 col-sm-12 left-contact px-2 py-2">
            <span className="get-in-touch mx-4 my-5">Get in touch </span>

            <div className="py-5 d-flex justify-content-center">
              <lottie-player
                src="https://assets3.lottiefiles.com/packages/lf20_u25cckyh.json"
                background="transparent"
                speed="1"
                style={{ width: "300px" }}
                loop
                autoplay
              ></lottie-player>
            </div>
          </div>

          <div className="col-lg-6 col-md-5 col-sm-12 my-auto">
            <form
              ref={form}
              className="d-flex flex-column card-contact-right"
              onSubmit={sendEmail}
            >
              <div className="input-group my-3 d-flex flex-column">
                <label> Name </label>
                <input
                  value={name}
                  onChange={(e) => {
                    setname(e.target.value);
                  }}
                  type="text"
                  placeholder="enter your name"
                  className="input-groups"
                />
              </div>
              <div className="input-group my-3 d-flex flex-column">
                <label>Email </label>
                <input
                  value={email}
                  onChange={(e) => {
                    setemail(e.target.value);
                  }}
                  type="text"
                  placeholder="enter your Email"
                  className="input-groups"
                />
              </div>
              <div className="input-group my-3 d-flex flex-column">
                <label> Message </label>
                <textarea
                  value={message}
                  onChange={(e) => {
                    setmessage(e.target.value);
                  }}
                  type="text"
                  placeholder="enter your message"
                  className="input-groups"
                />
              </div>
              <div className="input-group my-3 d-flex flex-column">
                <input
                  className="btn btn-success"
                  type="submit"
                  value="Send Message"
                />{" "}
              </div>
            </form>
          </div>
        </div>
      </div>
    </>
  );
}

任何帮助将不胜感激,因为我完全陷入困境。

【问题讨论】:

  • 嗨 Tamara,我遇到了同样的问题,我用帐户 dashboard.emailjs.com/admin/account 中的公钥替换了用户 ID,这个链接会有所帮助,用户 ID 也有 user_XXXXXXXXX 格式。请尝试一下,如果有帮助,请告诉我。

标签: javascript reactjs email


【解决方案1】:

您需要在调用emailjs.send() 时添加您的public_key 作为第四个参数。例如:

emailjs.send("service_e0zkrad", "template_7qrzf2e", templateparams, <PUBLIC_KEY>).then(
      function (response) {
        console.log("SUCCESS!", response.status, response.text);
      },
      function (error) {
        console.log("FAILED...", error);
      }
    );

这在 React 应用程序上对我有用。我在这里的文档中找到了它:https://www.emailjs.com/docs/examples/reactjs/

希望有帮助!

【讨论】:

    猜你喜欢
    • 2014-05-12
    • 2019-04-30
    • 1970-01-01
    • 2014-01-15
    • 2011-04-29
    • 2011-07-24
    • 2016-09-20
    • 2013-06-02
    • 2014-03-03
    相关资源
    最近更新 更多