Има ли надежден начин да се определи SMS адресът на дадено лице според неговия телефонен номер и имейл адрес?

Тъй като програмното изпращане на текст с Meteor от номера на мобилния телефон на потребителя изглежда е проблематично (вижте this), мисля, че начинът да направите това може да бъде да изпратите SMS/текстовете като имейл.

Често правя това ръчно от работа, когато изпращам SMS на съпругата си от имейл клиент; "триенето" е, че форматът за адресите, които да използвате, се различава в зависимост от оператора. например, когато изпращам SMS на съпругата си по имейл, използвам следния адрес:

[email protected]

Това очевидно работи за някой, който използва att.net като свой оператор. За други оператори се използват други схеми за именуване (които могат да бъдат намерени тук и тук.

Така че идеята ми е, ако знам телефонния номер на потребителя и неговия имейл адрес, мога да сглобя правилния SMS адрес, който да използвам като „от“ в имейл. например като се има предвид следното:

Phone == 0871632810
Email == [email protected]

... мога да имам функция като (псевдокод):

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 '[email protected]'

textAddrViaEmail вече може да се използва като имейл адрес „до“ или „от“.


person B. Clay Shannon    schedule 18.10.2015    source източник
comment
Мисля, че до голяма степен отговорихте на собствения си въпрос. Краткият отговор е Не. Както казахте, можете да го направите за някои комбинации, но не и за повечето други. Никога няма да бъде надежден.   -  person Michel Floyd    schedule 18.10.2015


Отговори (1)


Не, но има библиотека с доста голяма база данни за тях на адрес https://github.com/typpo/textbelt.

person Gaelan    schedule 18.10.2015