0

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

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

0871632810@txt.att.net

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

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

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 地址,是否有必要了解用户的运营商(发送者和接收者)并将电子邮件地址排除在外?

更新

至少有一项针对电话号码返回运营商的付费服务,例如此 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 现在可以用作“收件人”或“发件人”电子邮件地址。

4

1 回答 1

1

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

于 2015-10-18T23:18:35.297 回答