Тъй като програмното изпращане на текст с 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 вече може да се използва като имейл адрес „до“ или „от“.