我正在使用Firebase Auth为我的React应用程序开发一个身份验证系统。当用户注册时,firebase auth 会注册用户 (createUserWithEmailAndPassword),并返回一个promise,其中 auth.uid 和 auth.emailVerified 设置为“false”。这很好。
然后我使用sendEmailVerification()方法来验证电子邮件地址。我已经对代码进行了测试,对于“有效”和“现有”的电子邮件地址,它都可以正常工作。“catch”确实会按预期给出重复电子邮件地址的错误。问题是,它不会发送不存在的电子邮件(我认为这是正确的行为),但它会给出一个错误(这样我就可以向用户显示),而它不会。
有人可以解释为什么我没有收到不存在的电子邮件地址的错误吗?
export const unpSignUp = (newUser) => {
console.log("newUser", newUser);
return (dispatch, getState, { getFirebase, getFirestore }) => {
const firebase = getFirebase();
const firestore = getFirestore();
firebase.auth().createUserWithEmailAndPassword(
newUser.unp_a05_email,
newUser.unp_a10_password
)
.then((response) => {
return firestore
.collection("unps")
.doc(response.user.uid)
.set({
unp_a02_surname: newUser.unp_a02_surname,
unp_a03_name: newUser.unp_a03_name,
unp_a06_verify_email_sent_datetime: null,
unp_a07_email_verified_on_datetime: null,
unp_a18_acc_created_on_datetime: moment().format("YYYY MM DD HH:mm:ss"),
});
})
.then((response) => {
console.log("SIGNUP SUCCESS ", response);
// user has been signed up, next step is to send verification email
dispatch({ type: SIGNUP_SUCCESS })
})
.then(() => {
// user has been signed up, next step is to send verification email
console.log('send email adr verification')
return firebase.auth().currentUser.sendEmailVerification()
})
.then( (response) => {
console.log("Verification email sent", response);
const user = firebase.auth().currentUser
console.log('current user', user)
const unp = firestore.collection("unps").doc(user.uid);
return unp.update({
unp_a06_verify_email_sent_datetime: moment().format("YYYY MM DD HH:mm:ss"),
})
})
.then( () => {
console.log(`unp_a06_verify_email_sent_datetime update to ${moment().format("YYYY MM DD HH:mm:ss")} `)
})
.catch((error) => {
console.log("SIGNUP ERROR", error);
console.log("SIGNUP ERROR CODE", error.code);
console.log("SIGNUP ERROR MESAGE", error.message);
dispatch({ type: SIGNUP_ERROR, error });
});
};
};
从Firebase参考,
< code > sendEmailVerification 的返回类型是< code>Promise
如果未指定actionCodeSettings,则不会将URL附加到操作URL。提供的状态URL必须属于由开发人员在控制台中列入白名单的域。否则将抛出错误。
因此无法检查它是否是有效的电子邮件id。(这是预期行为,因为接收邮件的服务器有时可能会关闭,因此有重试退回邮件的概念)
我使用AWS SES服务发送电子邮件与验证的测试电子邮件地址在SES和使用相同的来源。 我正试图将电子邮件发送到其他电子邮件地址,但无法发送。这是给我的错误“电子邮件地址未经验证。以下身份未通过在US-EAST-1地区的检查”。 发送电子邮件的代码参考:https://aws.amazon.com/premiumsupport/knowledge-center/lambda-send-email-
我正在开发PHP应用程序,注册后,使用Amazon SES(简单电子邮件服务)向注册的电子邮件地址发送激活邮件。 但是SES只向经过验证的用户发送电子邮件。 如何将激活链接发送到任何未经验证的电子邮件地址?
我正在尝试使用Amazon SES发送电子邮件。我在地区工作过,刚刚把我的地区切换到,我无法向我的个人gmail账户发送电子邮件。我已经从地址验证了的
你好;我正在使用s.o上给出的答案进行smtp邮件;(如果搜索,相信这是第一个结果) 但我仍然没有收到邮件;任何人都可以帮助发现任何错误或提供替代解决方案吗?我已经使用了内置的邮件程序,但它没有被认证,请参阅 -
我想使用亚马逊的简单电子邮件服务发送电子邮件。 我验证了我的域名以及我想发送的电子邮件地址。 对于两者,它都表示。 现在,当我使用AWS控制台的发送测试电子邮件向myemail@outlook.com发送测试电子邮件时,我只收到错误消息: 电子邮件地址未验证。以下身份在区域EU-WEST-1中检查失败:myemail@outlook.com(请求ID: 9fb78de1-2673-11e6-bbb
这个代码应该发送一封电子邮件到指定的地址,当我硬编码“文本” 努力编码的文本和主题,它发送罚款!注意:使用GMAIL时,您必须启用不太安全的应用程序!