Существует ли надежный способ определения SMS-адреса человека по номеру телефона и адресу электронной почты?

Поскольку программная отправка текста с помощью Meteor с собственного мобильного телефона пользователя кажется проблематичной (см. Это), я думаю, что для этого можно отправить SMS / тексты в виде электронной почты.

Я часто делаю это вручную с работы, когда пишу жене из почтового клиента; "Руб" заключается в том, что формат используемых адресов различается в зависимости от носителя. например, когда я отправляю 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;
}

Проблема в том, может ли носитель человека / действующий адрес SMS всегда определяться его адресом электронной почты? Я думаю нет - например, что, если у человека есть comcast, но его адрес электронной почты - gmail, или что-то еще вообще?

Необходимо ли для того, чтобы надежно построить необходимый адрес SMS, знать оператора связи пользователя (как отправителя, так и получателя) и не указывать адрес электронной почты вне уравнения?

ОБНОВИТЬ

Существует по крайней мере одна платная услуга для возврата операторов по номеру телефона, такая как этот 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".

1 ответ

Решение

Нет, но есть библиотека с довольно большой базой данных по адресу https://github.com/typpo/textbelt.

Другие вопросы по тегам