I can send an email from my Rails app, but not an SMS text through an email gateway - ruby-on-rails

I have application that needs to send emails and sms text messages. It sends emails just fine, but when I try to send text messages using email gateways (for verizon, xxxyyyzzzz#vtext.com) I get nothing. I have texted the phone using though the email gateway using my gmail account, so I know it works. I would just think that from my app's point of view I am just sending out another email. Any idea why this doesn't work? Or what I can do to troubleshoot it?
I should also note that I am doing this from a Rails app on my local computer...not that it should matter.

Maybe Verizon has software that can identify emails sent from software rather than humans, and rejects yours?
Try making your software add all the same headers (eg. X-Mailer) that a normal email client would add.

Verizon could be doing a reverse DNS query as a simple spam check. Your ISP's info could show up during this look up instead of the return address info that your email message contains, and thus could be getting blocked.
To troubleshot this make sure that the return e-mail address that you are using is coming from an ISP e-mail account.

Here is how to debug it on Linux. Run your Rails application server with strace:
strace -s99999 -e connect,read,write,close -o strace.log script/server
Then examine strace.log and see exactly which SMTP server the Rails application connects to, and what it reads and writes.
Then do the same with your favorite mail client (recommended: mutt, because Thunderbird is slow in strace).
Try to send exactly the same bytes from Rails what your mail client sends.

I have used SMS_Fu in the past to send out text messages. It has worked wonderfully.

I have written a client app for Ruby for sending SMS, please see http://freebiesms.blogspot.com/2009/07/send-free-sms-from-ruby.html to download
complete source code.
Regards
Dan

Related

Emails not going from Mandrill to Gmail

I'm trying to send email from my app, emails seem to be going to mandrill correctly and there getting delivered, but I see nothing in my inbox.
I've even tried sending them through my domain and I'm still not getting them. I get them from my live website its using gmail but I want to switch
Using mxtoolbox.com I found
SMTP Reverse DNS Mismatch and
454 4.7.1 Relay access denied which could mean its been marked for spam?
It's sent through emails twice so I'm wondering if theres a time between emails sent or something.
When I was testing this I thought my emails where being dropped by gmail. I found that for some reason there was a very long lag going from Mandril to Gmail. I received all my tests about an hour after Mandril sent them. Hope this helps someone stuck like I was.
Found this question trying to diagnose my issue.
I am using Mandrill and found that sending emails from Mandrill to Gmail will take anywhere from 10 seconds to 15 minutes. Can't establish a reason why sometimes it takes longer.
Mandrill blocks certain domains from being the send address to prevent fraud, but as long as you're sending from an address you know exists to an address you know exists, you should be fine. Also, if that were the problem, the email would bounce rather than send. Also, some email services have policies that prevent you from doing things like sending an email to your address from your address from an external service. Based on that error message you provided, it could be something like that; I would check your provider's policies (and your spam folder).
Not an answer but if you look on your mandrill Outbound activity page and click on the green icon that says Delivered you should see that it says No smtp events.
I don't know why it doesn't send but this show that it hasn't sent.
Or should I say hasn't arrived where it was supposed to.
Update:
On further investigation I found out that the emails weren't sending because I was using my personal email address as the sender from_email: When I changed this to a more business sounding email address it worked. So make something up if you have to, like no-reply#nonsense.com

Sending email to the "outside world" from localhost using hMailServer and Gmail SMTP on Windows 7

I am not sure if this is technically possible but I am running a AMPPS box on Windows 7 as my localhost and I have configured it with Gmail SMTP (ssl://smtp.gmail.com) to send out email from my PHP scripts like joomla, wordpress, socialengine, etc.
Now I installed and setup hMailServer and I am able to send and receive emails locally but was wondering if there was a simple way that I could configure my localhost and email server to send out email to outside world (e.g. #hotmail.com or #yahoo.com receipients) using Gmail SMTP?
Currently with my setup, I am only able to receive installation confirmation emails from AMPPS but nothing else like "Forget Password" or "User Registration Forms" work.
Any ideas without getting too deep into code modification?
The simple answer is no, or rather it is far from easy, especially from a home based server.
And the reason is that your IP address amd mail server domain will not be considered as a ligitimate mail server by most of the legitimate mailservers you will be trying to send mail to, and they will just reject it as yet another spam server.
Have a look at these:
https://serverfault.com/questions/72559/setting-up-a-mail-server-best-practices-to-be-recognized-as-legitimate
How to conduct legitimate email campaigns

How to keep IP trust from email companies when developing in local/test

I am using sendgrid on my Rails app that I am beginning to build.
I am in test mode, mostly doing local stuff but I send many emails to check my process or email layout.
The email I use to receive the emails is on Gmail. I fear Gmail will see there are many emails everyday and never an answer and maybe that the CSS changes a lot, and maybe other factors gmail take into account to assess the trust level of an IP sending emails...
Do I risk Gmail to decrease the trust level of my sendgrid IP? (I don't have much choice during test mode I think)?
What could I do to avoid the IP trust getting hit?
You could use mailtrap to avoid polluting true email addresses. You may check emails sent from their web interface or manually forward them to your inbox.
You could use mailcatcher to catch and view your emails sent from localhost.
MailCatcher runs a super simple SMTP server which catches any message
sent to it to display in a web interface. Run mailcatcher, set your
favourite app to deliver to smtp://127.0.0.1:1025 instead of your
default SMTP server, then check out http://127.0.0.1:1080 to see the
mail that's arrived so far.
In order for you to use it:
gem install mailcatcher
mailcatcher
Go to http://localhost:1080/

Is there a way to setup a fake email inbox to check that email messages are being sent in ruby on rails?

I'm testing several user accounts and don't want to setup different emails to test with. All I need to know is if the email has been sent from my app successfully.
Is there a way to setup a fake email inbox to check that email messages are being sent in Ruby on Rails?
Set up MailCatcher:
MailCatcher runs a super simple SMTP server which catches any message sent to it to display in a web interface. Run mailcatcher, set your favourite app to deliver to smtp://127.0.0.1:1025 instead of your default SMTP server, then check out http://127.0.0.1:1080 to see the mail that's arrived so far.
This does several useful things for you:
Not only can you see that email is being sent but you can look at the email (text and HTML parts) as well.
You won't have to worry about spamming anyone as all the email your application sends goes straight to MailCatcher.
You won't have to worry about setting up a bunch of real email accounts anywhere, MailCatcher doesn't care what the addresses are, it just grabs the email and shows it to you.
Most importantly, your application doesn't have to change to use it, you just set up the appropriate SMTP values and away you go. This means that you're not running different code paths for your email handling in development, testing, and production and that means fewer bugs and late night disaster calls.
During development and testing, emails are also shown on the console. That has always been enough for me – I don't doubt rails' ability to actually send it once it's in production.

Emails sent from postfix via a Rails app are getting sent to spam in gmail

When using 'mail' command to send email to a gmail user, the email goes through fine. When sending an email using a Rails app, the email is sent to the spam folder for the gmail user. Can someone help me think through this?
Emails landing in SPAM can happen due to many reasons:
Wrong Mail Server setup: Checkout here on how to setup
Email content: Content of the email can also invite SPAM. Sites like SpamCheck helps to check whether the content of the email is ok.
As mentioned by #Noli above, using services like Sendgrid, Critsend etc for sending out emails, chances of landing them in Inbox will be more. You can use them as relay servers from Postfix. But the first two steps are anyway necessary.
Use Mailchimp if you want to sent emails to many people, for eg: for sending out newsletters, marketing emails etc.
Mail deliverabillty is extraordinarily hard to get right. You should consider leaving this to the specialists like Sendgrid or Mailchimp, and not spend tooooo much development time thinking about it
Another thing to check is that if this is a new server, you may need to set up Domain Keys to authenticate to Gmail. This happend to me and I was able to get my mail removed from the spam folder by following these:
https://help.ubuntu.com/community/Postfix/DomainKeys
https://help.ubuntu.com/community/Postfix/DKIM

Resources