Tag: opensource

Email-to-SMS Gateway List With Setup & Code Example

Email-to-SMS Gateway List With Setup & Code Example

email_to_sms
email_to_sms

    For personnel projects, one might need to send a message to a phone to give updates or alerts. This can be done relatively easily by using PHP and its “mail()” command. But, we need to know what gateway to send it to and what the number is. The number part is easy but gateways vary. So, here is a reference list of Email-to-SMS Gateways. In addition, there is a quick code reference part to help get the ball rolling. As a final point before starting, you will need a proper mailing system and FQDN to make sure messages get through. Some gateways are highly fickle and you might not always get the SMS sent through using this setup. So, don’t use this in a commercial context unless you do the aforementioned.

Code Reference:

    First, you’ll need the program “mail()” uses to send messages. In a terminal do:

sudo apt-get install sendmail

Then, edit the host file found at /etc/hosts. You’ll have something like this at the top: 127.0.0.1 localhost. You need it to be setup the proper FQDN syntax; so, something like this: 127.0.0.1 localhost.example.com is needed. After all that is setup (You might need to reboot.) you simply need to insert into a PHP script the following:

$number = "[email protected]";
$subject = "Your sybject message here.";         // Not used in text messages per say
$tmessage = wordwrap("Your message here.", 70 );

mail($number, $subject, $tmessage);

Gateway List:

Cell Carrier Email Domain
AT&T Enterprise Paging page.att.net
AT&T Wireless txt.att.net
Alaska Communication Systems msg.acsalaska.com
Alltel  text.wireless.alltel.com
Now part of AT&T
Australia T-Mobile/Optus Zoo (Optus) optusmobile.com.au
Appears they charge for the service
Bell Mobility & Solo Mobile txt.bell.ca
Bluegrass Cellular sms.bluecell.com
Boost Mobile myboostmobile.com
Cellcom cellcom.quiktxt.com
Cellular South (C Spire) cellularsouth1.com
(now cspire1.com)
Centennial Wireless cwemail.com
Cincinnati Bell gocbw.com
Cingular cingular.com
Merged with AT&T Mobility 2007
Cingular Prepaid cingulartext.com
Cox Wireless Discontinued 2012
Cricket Wireless mms.cricketwireless.net
Digicel St. Lucia digitextlc.com
Fido fido.ca
Google Voice Not an actual carrier
GCI Alask Digitel (GCI) mobile.gci.net
IV Cellular (Illinois Valley Cellular) ivctext.com
i wireless (iWireless) iwspcs.net (T-Mobile)
iwirelesshometext.com (Sprint PCS)
Koodo Mobile msg.telus.com
Lime txt2lime.com
Metro PCS mymetropcs.com
Mobilicity No email-to-SMS service
MTS Mobility text.mtsmobility.com
NET10 Determine NET10’s carrier
Nex-Tech sms.nextechwireless.com
nTelos pcs.ntelos.com
Will change to Sprint early 2016
O2 (M-mail) mmail.co.uk
O2 Powered Networks  
O2 UK o2imail.co.uk
Optus optusmobile.com.au
Appears they charge for the service
Orange orange.net
PC Telecom mobiletxt.ca
PTel Mobile tmomail.net
Pioneer Cellular zsend.com
Pocket Wireless sms.pocket.com
Republic Wireless text.republicwireless.com
Rogers Wireless pcs.rogers.com
SaskTel sms.sasktel.com
Sprint messaging.sprintpcs.com
Straight Talk Determine Straight Talk’s carrier
Syringa Wireless rinasms.com
T-Mobile tmomail.net
T-Mobile UK t-mobile.uk.net
Telstra onlinesms.telstra.com
Telus Mobility msg.telus.com
Three three.co.uk
Tracfone Determine Tracfone’s carrier
US Cellular email.uscc.net
Unicel utext.com
Verizon vtext.com
Viaero viaerosms.com
Virgin Mobile vmobl.com
Virgin Mobile Canada vmobile.ca
Virgin Mobile UK vxtras.com
Vodafone No email-to-SMS service
Wind Mobile txt.windmobile.ca

Check out my article regarding test servers so you can test this out properly!


Servers
Quick Test Server

W3C Killed Web Security

W3C Killed Web Security

W3C Logo
W3C Logo

    It’s a sad day folks…. The W3C killed web security by accepting DRM without having a caveat that protects against DMCA’s (Digital Millennium Copyright Act) unreasonable reach. Security researchers are out; hackers are in. While I am sure that most users believe that companies and creators have the right to protect their IP (Intellectual Property), I am also sure they believe in having strong security and a reasonable right to use their purchased product in whatever manner they see fit. With the web, it was a last bastion that held to those principles. It was killed both brutally and without much compunction by W3C and its corporate backers in a vain attempt to stem the tide of piracy and illegal copying.

    Let’s be clear here for a moment about the current problem. I don’t have an issue with DRM. I don’t agree with it all the time but neither do I disagree with it all the time. No, the issue is with DMCA and it’s unreasonable reach in trying and failing to protect DRM. There are two sections in the DMCA that are of great interest. The core section I am referring to is Section 1201: Circumvention of copyright protection systems.

    Section 1201 affects the web and all technologies the most and is why it is a sad day for the internet. The EFF letter to W3C addresses some of the concerns regarding Section 1201 in its implementation in web technologies.
Here are some of the critical points they made when hoping W3C would add a pretext for accepting DRM standards.

    “This covenant would allow the W3C’s large corporate members to enforce their copyrights. Indeed, it kept intact every legal right to which entertainment companies, DRM vendors, and their business partners can otherwise lay claim. The compromise merely restricted their ability to use the W3C’s DRM to shut down legitimate activities, like research and modifications, that required circumvention of DRM….
    More directly, such a covenant would have helped protect the key stakeholders, present and future, who both depend on the openness of the Web, and who actively work to protect its safety and universality. It would offer some legal clarity for those who bypass DRM to engage in security research to find defects that would endanger billions of web users; or who automate the creation of enhanced, accessible video for people with disabilities; or who archive the Web for posterity. It would help protect new market entrants intent on creating competitive, innovative products, unimagined by the vendors locking down web video.”

There is the crux of the issue and why W3C should have had clear stipulations for implementing DRM into web technologies. There really isn’t anything protecting the user and their right to circumvent DRM when it is not infringing the patent holder or IP source. Security experts are now in a quasi grey area where their work is to determine vulnerabilities but they are violating DMCA. This helps no one but the bad guys and that is just sad in the day and age where billions of users need strong security the most.

    In addition, we don’t know who did and didn’t vote in favor of the implementation of a DRM standard. The votes are secret and that should disturb us even more than the terrible overreach of DMCA’s rules. It is worth noting that W3C’s member votes aren’t always public and by default one must opt-in for public disclosure of said vote. For an organization that affects our lives, to not have public disclosure of votes by default and as enforced practice is egregious. We all know why this is the case though. Companies don’t want to look like the bad guys even when they are. So they hide in anonymity as we all are left to hang by their terrible decisions. We can make some guesses as to who voted for the standardization but don’t know who else are their accomplices. Essentially, a private group gets to affect our lives without us holding them accountable. In addition, their votes wont stop piracy or illegal copying. So all in all, they hurt themselves as well as us with nothing to show for it but the further stripping of our rights.

    While it all looks bad, there are bright spots. The US government is looking to open source its code base as much as it reasonably can. Maybe they’ll step in and decide obtrusive DRM and its protective DMCA rules are too powerful. If interested in some of their projects, check out my article covering some of the best packages released to date.

Code.gov

Code.gov

Picture of code dot gov slogan
Code.gov

    I just wanted to make a shout out to Code.gov and the work they do. If one isn’t sure of who or what they are they are the US government’s team working to opensource the code used by the government’s agencies. This post comes on the heals of an email I received from their mailing list which reminded me of their transition to open source their code. I can’t think of any better way to express democracy than through opening up a sizable chunk of ones code base.

Here are 5 projects to keep an eye on


5 — Consumer Financial Protection Bureau’s Owning a Home Project

    Hey, getting a home isn’t always easy but it can be with these tools provided by Consumer Financial Protection Bureau and its Owning a Home project. Everything is looked at from loan options, terminology, and costs.

Link: https://github.com/cfpb/owning-a-home

4 — National Archives and Records Administration’s File Analyzer Project

    So, this project came to my attention because I am programming a CSV file viewer. I’m considering other functions for my application and this file analyzer just might be the thing to give it a cool boost. It says that each file test generates a table of results and that is useful given my CSV viewer dumps a csv file into a GUI table view.

Link: https://github.com/usnationalarchives/File-Analyzer

3 — Department of Agriculture’s RIBD Project

    Ahh leisure…. Who doesn’t want to enjoy time off at beautiful federal lands, historic sites, museums, and/or other attractions?
According to their site, the “Recreation Information Database (RIDB) provides data resources to citizens, offering a single point of access to information about recreational opportunities nationwide.”

Link: https://usda.github.io/RIDB/

2 — NSA’s Unfetter Project

    When not spying on us and the world, the NSA is helping us secure our data by giving tools that analyze gaps in our security posture.

Link: https://iadgov.github.io/unfetter/

1 — NASA’s 3D Resources

    I am a big fan of space and even bigger fan of making beautiful Blender renders. NASA’s 3D model collection is huge and gives great assets to space fans and art lovers alike to play with.

Link: https://github.com/nasa/NASA-3D-Resources

Quick Test Server

Quick Test Server

Server

    There are times when I need a server in order to test some feature or bit of code. I don’t like spooling up a Linux, Apache, Mysql, and PHP (LAMP) or Linux, Nginx, Mysql, and PHP (LEMP) stack because it’s tedious. Notice what I did there? I made the whole sentence tedious to get you to think it really is tedious. It really isn’t but frankly, I needed a reason to write this. Anyway, so, what is one to do? Well, there are two option that come to mind and those are Python, Php, or Netcat. One might ask, “Whaaat? Rly?” Yup. Really. All one needs to do is open up a terminal/cli and get ta hackin.

    Python call up the Python module SimpleHTTPServer using the switch -m and then give it a port. Make the port greater than 1024 since those are reserved and require root to use. BAM! Open your browser of poison and go to localhost:portNumber or 127.0.0.1:portNumber.

Python Server

python -m SimpleHTTPServer 1337

I did not need to insert any index.html files to the directory. Python automatically gives a list of the directory contents when no index file is found. As a side note, Python doesn’t seem to read Php properly. I have yet to get it to work.

    For Php all one does is use the switch -S and then give it an address (127.0.0.1) and port. Again, make the port greater than 1024 since those are reserved and require root to use. BAM! Once more, open your browser of poison and go to localhost:portNumber or 127.0.0.1:portNumber.

Php Server

php -S 127.0.0.1:1337

It is worth noting that with Php I had to insert an index.php file into the directory I ran the command from. It doesn’t generate any list but does throw an error when no index is found. Additionally, this method seems to only work with Php files. To test if the Php server works, simply insert in the index.php :

<?php
    phpinfo();
?>

    For the last one we will look at Netcat. Netcat is the swiss army knife of the networking tools and has an interesting way of creating a kind of server. To start off, simply create a file called serve.sh. The name is arbitrary but that’s what we will use for this example. Then, in the file add

Netcat Server

#!/bin/bash

    echo "`cat index.html`"

When this is done, simply create an index.html as you would any other. In my case, I did:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Google Link</title>
</head>
<body>
    <h1><a href="http://www.google.com">Google</a></h1>
</body>
</html>

After all this prep, which isn’t much we simply run in the terminal where serve.sh and index.html is:

while true; \
do { \
    echo -e 'HTTP/1.1 200 OK\r\n'; sh serve.sh; \
} | nc -l 1337; \
done

One might need to press enter again to actually run it because of the \’s stating “look to next line for rest of command”. One can also just remove the \’s and put the whole command like so:

while true; do { echo -e 'HTTP/1.1 200 OK\r\n'; sh serve.sh; } | nc -l 1337; done

One can use Php with this by the way. All one does is rename index.html to index.php. Then one adds some code like in the Php example above. After that, in the serve.sh, edit the cat index.php to be php index.php. This has Php interpret the file which then has its output gets echoed back to the requester.
All of this needs some explaining. So what is happening is that the while loop is checking to see if there is anything left to run. Note that the first part before the semicolon tells the browser that there is a server where one requested one. IE, it confirms the request. Then, the serve.sh is ran. In serve.sh it echos out what cat prints from index.html or what Php prints from index.php. This is essentially sent as the file back to the requester. Thus, we can see the h1 sized Google anchor link in this example.

    Voila! A nice juicy server is ready for use in any project that needs one. If one is adventurous, one can use these simple servers to serve files on the local network. To do this, all you have to do is allow the port to accept connections using UFW and then change the address “127.0.0.1” to “0.0.0.0”. This isn’t recommended for long term use but can be useful when needing to transfer something or using an app that’s for the local network. Even then, one might be better off just using ssh or email! Still, in those rare times, all one does is allow the port to be open by using ufw.

ufw allow portNumber/tcp

To remove the rule:

ufw status numbered
ufw delete "the number associated with ones portNumber"
ITDominator’s Youtube Channel

ITDominator’s Youtube Channel

Youtube Channel:

    Linked is my Youtube Channel. At the inception of this post and following my need to switch accounts in order to unify my brand, I am pretty much back to zero subscribers. Starting new yet with more knowledge is invigorating and terrifying all at the same time. I hope you dear follower will find something useful or amusing from my humble collection of videos. I cover a lot but like to focus on C, C++, Java, JavaFX, Bash, Python, Blender, Gaming, and a whole lot of other topics.

Redirect

ITDominator’s Opensource.com Article

ITDominator’s Opensource.com Article

Opensource Article: Opensource Penguins on Ice

    Opensource.com is a great site for the FOSS and freedom lovers alike. In addition, what it discusses and provides is a way of life. The article for the site shows my journey into living that way of life and covers my journey into a new paradigm of thinking. With one part openness and another part determination one goes a long way into reaching that enlightenment of GNUing. Patience, perseverance, and a lot of coffee help too. Enjoy!

Redirect