有没有可靠的方法可以根据一个人的电话号码和电子邮件地址来确定他们的短信地址?



由于从用户自己的手机号码以编程方式发送带有Meteor的文本似乎有问题(见此),我认为这样做的方法可能是将SMS/文本作为电子邮件发送。

当我从电子邮件客户端给我的妻子发短信时,我经常在工作中手动做这个;"问题"在于地址的格式因运营商的不同而不同。例如,当我通过电子邮件给我的妻子发短信时,我使用和地址如下:

0871632810@txt.att.net

这显然适用于使用att.net作为他们的载体的人。对于其他运营商,使用其他命名方案(可以在这里和这里找到)。

所以我的想法是,如果我知道用户的电话号码和他们的电子邮件地址,我可以拼凑出正确的短信地址,用作电子邮件中的"from"。例如,给定以下内容:

Phone == 0871632810
Email == guinevere@att.net

…我可以有一个这样的函数(伪代码):

string getSMSAsEmailAddr(phone, email) {
    var emailAsSMS;
    if (email.contains('att.net') {
        emailAsSMS = 'txt.att.net';
    }
    else if (email.contains('comcast.net') {
        emailAsSMS = 'comcastpcs.textmsg';
    }
    . . .
    return phone + '@' + emailAsSMS;
}

问题是,一个人的运营商/有效短信地址总是由他们的电子邮件地址决定吗?我认为没有——例如,如果一个人有康卡斯特,但他们的电子邮件地址是gmail,或者其他什么呢?

是否有必要,为了可靠地建立所需的短信地址,知道用户的运营商(发送方和接收方),并把电子邮件地址排除在外?

更新

对于返回电话号码的运营商,至少有一个付费服务,例如这个API。还有一种叫"CallFire",但这两种都要花几百万美元。我喜欢免费的选项(是的,我是个吝啬鬼)。

我在想这样做的方法是:

var phoneNum = $('#phoneNumber').val(); // returns something like '0871632810'
var carrier = getCarrierForPhoneNumber(phoneNum);// returns something like 'att' or 'comcast' or whatever
var textAddrSuffix = getTextAddrSuffixForCarrierName(carrier); // returns (if carrier is 'att', as an example) something like '@txt.att.net'
var textAddrViaEmail = phoneNum + textAddrSuffix; // returns something like '0871632810@txt.att.net'

textAddrViaEmail现在可以用作"to"或"from"电子邮件地址

没有,但是有一个图书馆有一个相当大的数据库在https://github.com/typpo/textbelt.

相关内容

最新更新