有没有一种可靠的方法可以根据 phone 号码和电子邮件地址确定一个人的短信地址?
Is there a reliable way to determine a person's SMS address given their phone number and email address?
由于以编程方式从用户自己的单元格 phone 号码发送带有 Meteor 的文本似乎有问题(请参阅 ),我认为执行此操作的方法可能是发送短信/短信作为电子邮件。
当我从电子邮件客户端给我妻子发短信时,我经常在工作中手动执行此操作; "rub" 是地址使用的格式因运营商而异。例如,当我通过电子邮件给我妻子发短信时,我使用如下地址:
0871632810@txt.att.net
这显然适用于使用 att.net 作为载体的人。对于其他运营商,使用其他命名方案(可以找到 here and here.
所以我的想法是,如果我知道用户的 phone 号码和他们的电子邮件地址,我就可以拼凑出正确的 SMS 地址,用作电子邮件中的 "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;
}
问题是,一个人的 carrier/valid SMS 地址是否总是由他们的电子邮件地址确定?我想不 - 例如,如果一个人有 comcast 但他们的电子邮件地址是 gmail 或其他东西怎么办?
为了可靠地构建所需的 SMS 地址,是否有必要了解用户的运营商(发件人和收件人)并将电子邮件地址排除在外?
更新
至少有一项为 phone 号码返回运营商的付费服务,例如 this 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 有一个图书馆,里面有一个相当大的数据库。
由于以编程方式从用户自己的单元格 phone 号码发送带有 Meteor 的文本似乎有问题(请参阅
当我从电子邮件客户端给我妻子发短信时,我经常在工作中手动执行此操作; "rub" 是地址使用的格式因运营商而异。例如,当我通过电子邮件给我妻子发短信时,我使用如下地址:
0871632810@txt.att.net
这显然适用于使用 att.net 作为载体的人。对于其他运营商,使用其他命名方案(可以找到 here and here.
所以我的想法是,如果我知道用户的 phone 号码和他们的电子邮件地址,我就可以拼凑出正确的 SMS 地址,用作电子邮件中的 "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;
}
问题是,一个人的 carrier/valid SMS 地址是否总是由他们的电子邮件地址确定?我想不 - 例如,如果一个人有 comcast 但他们的电子邮件地址是 gmail 或其他东西怎么办?
为了可靠地构建所需的 SMS 地址,是否有必要了解用户的运营商(发件人和收件人)并将电子邮件地址排除在外?
更新
至少有一项为 phone 号码返回运营商的付费服务,例如 this 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 有一个图书馆,里面有一个相当大的数据库。