wix - 避免 Wix 会员确认电子邮件或更改发送地址
问题描述
我正在与一个经营 BtoB 的客户合作。我们已经设置了会员帐户和一些会员角色,以保护他们在获得批准后可以访问的敏感信息。但是,我们遇到了一个让我完全发疯的问题:作为 Wix 的默认注册流程规则,一旦有人注册并且我们批准了会员访问权限,就会向他们的帐户发送一封带有令牌的电子邮件以确认他们的电子邮件。
即使我们有一封与我们域中的 Wix 集成的电子邮件,确认电子邮件和密码重置(在用户单击“忘记我的密码”后发送)都不是从该地址发送的,而是从一些愚蠢的@site-members 发送的.com 地址。
我的客户的客户都使用商业电子邮件,他们的大多数服务器都完全阻止了这些电子邮件。因此,他们无法完成注册过程,也无法登录。
在尝试与 Wix 的支持人员交谈后——这完全是浪费时间——我开始在互联网上搜索并找到了一个将触发电子邮件作为确认电子邮件发送的教程。我试过了,它似乎可以工作,但是,即使将触发的电子邮件设置为从我的帐户发送,它也会通过以下方式添加:
Aaaand .. 你猜怎么着!在做了一些测试之后,这些在许多服务器中也被阻止了。
所以,我不知道还能做什么!有人可以帮助我避免发送确认电子邮件,或者看看是否有任何其他方法可以设置使用 Corvid 或 Wix 仪表板发送电子邮件地址?
以防万一您想查看代码,它分为三个部分:
注册灯箱
import wixWindow from 'wix-window';
import wixData from 'wix-data';
import { doRegistration } from 'backend/register';
let registration;
$w.onReady(function () {
$w("#register").onClick((event) => {
console.log("Button was clicked");
$w("#errorMessage").collapse();
$w("#emailExists").collapse();
if ($w("#email").valid && $w("#password").valid && $w("#company").valid && $w("#name").valid) {
registerPerson();
console.log("Trying to register");
} else {
$w("#errorMessage").expand();
console.log("Missing Information");
}
})
});
function registerPerson () {
let email = $w("#email").value;
let password = $w("#password").value;
let name = $w("#name").value;
let company = $w("#company").value;
let toInsert = {
"name": name,
"company": company,
"email": email
};
wixData.insert("Members", toInsert)
.then( (results) => {
let item = results;
} )
.catch( (err) => {
let errorMsg = err;
} );
doRegistration(email, password, name)
.then((result) => {
wixWindow.openLightbox("confirmation");
let userId = result.user.id
.catch((err) => {
let errMsg = err;
console.log(err);
$w("#emailExists").expand();
} );
});
}
后端寄存器.JSW
export function doRegistration(email, password, name, company) {
// register the user
return wixUsers.register(email, password, {
"contactInfo": {
"name": name,
"company": company
}
})
.then((results) => {
wixUsers.emailUser('verifyRegistration', results.user.id, {
variables: {
approvalToken: results.approvalToken
}
});
return results
});
}
export function doApproval(token) {
// approve the user
return wixUsers.approveByToken(token)
// user is now active, but not logged in
// return the session token to log in the user client-side
.then((sessionToken) => {
return { sessionToken, "approved": true };
})
.catch((error) => {
return { "approved": false, "reason": error };
});
}
CONFIRMATION PAGE(确认电子邮件后将重定向用户)
import wixLocation from 'wix-location';
import wixUsers from 'wix-users';
import {doApproval} from 'backend/register';
$w.onReady( () => {
// get the token from the URL
let token = wixLocation.query.token;
doApproval(token)
.then( (result) => {
if (result.approved){
// log the user in
wixUsers.applySessionToken(result.sessionToken);
console.log("Approved");
}
else {
console.log("Not approved!");
}
} );
} );
解决方案
只需在 DNS 中创建 SPF 记录,并将所有内容与 WIX 服务器(ascendbywix.com ~all)一起包含在其中。
推荐阅读
- python - Python 3 子元素列表比较
- javascript - 将 JSON 数据中的两个或更多图像传递给 MVC 控制器不起作用
- php - 想要密码保护 Wordpress 页面并使用 PHP 函数验证密码
- go - Gin-Gonic 中间件声明
- php - 在php和namevalue中显示最小值和最大值mysql?
- python - 如何将 Python RQ worker 连接到 unix 套接字上的 redis 服务器?
- javascript - 尝试将字符串分解为数组时 str.match 不起作用
- mongodb - 在 Mongodb 投影中使用 toString()
- php - laravel 5.6 中的 Response() 查找文件夹
- python - Python 函数和 TKinter GUI 的正确绑定有问题