有可靠的方法来确定一个人的短信地址给出他们的电话号码和电子邮件地址吗?

时间:2015-10-18 13:19:31

标签: email meteor sms sms-gateway carrier

由于以编程方式使用Meteor从用户自己的手机号码发送文本似乎有问题(请参阅this),我认为这样做的方法可能是发送短信/短信作为电子邮件。

当我从电子邮件客户端发送我的妻子时,我经常从工作中手动执行此操作; "擦"是否使用的地址格式因运营商而异。例如,当我通过电子邮件向我的妻子发短信时,我使用并解决如下问题:

0871632810@txt.att.net

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

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

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;
}

问题是,某个人的运营商/有效短信地址是否总是由他们的电子邮件地址决定?我没有想到 - 例如,如果一个人有comcast但他们的电子邮件地址是gmail还是其他什么呢?

为了可靠地构建所需的SMS地址,是否有必要了解用户的运营商(发件人和收件人)并将电子邮件地址排除在等式之外?

更新

至少有一项付费服务​​可用于返回电话号码的运营商,例如this API。还有一个名为" CallFire"但这两个成本moolah($$)。我更喜欢免费选择(是的,我是一个小偷)。

我认为这样做的方法如下:

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现在可以用作"到"或"来自"电子邮件地址。

1 个答案:

答案 0 :(得分:1)

不,但是在https://github.com/typpo/textbelt处有一个包含相当大的数据库的库。