I'm building an app where purchasing is involved and it needs to send a lot of emails. I've successfully set up nodemailer but don't understand if I can use that for free without limitations.
Missing an email could be crucial to the purpose of my web app. Is it not a good idea? thanks!
Related
I want to create an application which will be notified by server for new events. (lets say I have a shop and I need to inform all my iPhone users for my sales or something like this) Users who will download my application and run it and then put it in background wil have to be notified by this. Im quite new to iOS and Objective-C but if im not wrong this could be done via apple push notifications. Ive been reading about this and found out there are some providers that let you send this notifications. My question is, are there ways to create your own notification "center" in lets say c# and send notifications to iPhone-s by yourself, also if this could not be done are there any free providers?
and another thing. In objective-c app you have to subscribe your app to listen to that kind of events. Could you create app in phonegap or some other technologies so it will work with notifications? could you lets say embeed your app in objective-c (like web app in objective-c)
For sure you can do your own C# program that will push APNs to your clients (in fact I did that myself in many apps). What you have to understand is that the architecture of APN has 2 critical facts:
APNs are best effort, so no guarantee that they will reach every time.
APNs can not hold a lot of information with them when they reach your client (they have a limited number of bits, refer to the Apple documentation).
Due to these facts you might need to have your own server application (also could be in C#) that will handle sending the real information to the clients and will make sure that the data reached your client as well. Needless to say, this server application should sit and run on a real server. Maybe due to this fact some developers start looking for a third party solution, but personally I prefer not to use a third party and I do everything myself.
Other than having your own server application, your iPhone app will need to have some sort of database (probably SQLite3) to store the received news and display them later on.
EDIT: Answer of your questions in the comments below:
For the first question "why iPhone app must have sql db". In fact it is not a must, as I said in my answer above, it is probable or a possibility. To know if you will need a database or not this depends on the nature of your app itself. For example you might be pushing text and images to your clients and in that case you can not fit such data in the payload of the APN. Another possibility, you might want not to lose the sent notification even if the user discarded the APN message, you might want to show it again when he opens the app later on... So the nature of the app decides whether you will need a server or not.
For the second question "you said you dont need to send notification via third party", let me clarify something in my answer. As an Apple developer I don't consider Apple servers as third party. Put differently, the real APN will only be sent via Apple servers and we can not change this fact (nor do we want to change it too). So at the end of the day the real APN will be sent to Apple servers and Apple servers will work on delivering it to the actual client. What I consider a third party is someone that has his own server, you send the message you want to him, and then he sends it to Apple servers. In that case there is someone between you and the Appl APN servers and this is what I called a third party, and this third party can be avoided as your C# code can directly connect to the Apple APN servers and ask it to send the message to the client. I hope I clarified my point.
Yes, you can use APNS with the phonegap application: Receiving push notification on PhoneGap for iOS
Regarding the server, there is another option for you besides doing everything from scratch. You can use the third-party server via API, seems that pushwoosh (http://pushwoosh.com) guys offer this option (and they provide phonegap integration as well)
According to Apple;
"missing network alerts is the third most common reason for applications being returned to developers for modification."
So when exactly is this required? i.e. do some functions have this catered for?
I simply need to send an in-app email (code working), so it seems rather laborious to now have to figure out how to implement all that Reachability code as well.
Using Reachability is generally a good practice... To prevent user actions that will not succeed. (Like writing a long text to finally get an error message, losing your work)
...But in your case, for in-app email, you do not need to check network availability.
Because the mail will be handled by Mail app, which already does this very well, by keeping mail in outbox, mail that will be sent later, when network available...
The network reachability class is available in Apple documentation, you only have to download it and use it in your code. You can have it from this link.
Unfortunately, the iPhone cannot flag email messages for followups as it does in Outlook or Gmail. Everywhere I search, people are griping about this with no solution except for moving emails in a 'follow up folder', which is lame because I use flags on my PC with great ease. I am using Exchange to access my email and know flagging works on Windows, Treo, and some other phones. Still no email flagging in the upcoming iOS 4.3 either.
My question is if it is possible to modify the built in mail app in iPhone to give capability for flagging email messages? I'm sure this would require jailbreaking which I'm ok with. If it is not possible, what about creating a stand alone app that simply views emails with an option to flag them? Any help would be greatly appreciated.
The only options you have to get this feature are
build your own mail client for the iPhone. There is a really nice (but not up-to-date) mail framework in Objective-c called MailCore and a pretty good C framework called libEtPan
hope that Apple will support it in a new iOS version release
Have a look at the sql database for the MobileMail.app account in this folder:
/User/Library/Mail/IMAP-emailaddress#imapserver/
Edit it directly with SQLite.
The iPhone's mail application doesn't come with an extensions framework, so there's no straightforward way to modify its functionality. If you really have your heart set on this feature, the only option you really have is to jailbreak and write your own mail client. That wouldn't be a simple exercise, especially if you need Microsoft Exchange integration.
The way I would deal with this is to use the Gmail web interface, which lets you star messages. You can set up your exchange account to forward messages to Gmail, and then you'd use Gmail as your primary mail provider.
Both these solutions sound really clumsy, so I think you might have to give up on flagging messages.
I'm trying to implement an app that can read received SMS and email out. I mean convert the text content to voice. So I need to access to SMS and email first. As far as I know, there is no such API provided in the default SDK. Is there any other way to realize it?
Are the SMS messages stored in database(sms.db)? How to access to them? Is it only possible on jailbroken iphones?
And what about emails? Are they only stored in mail servers? How can I get them in my app?
Sorry for asking so many questions. I have spent many days on this problem, but havn't found any solutions...
You can't. According to the Device Features Programming Guide: Sending an SMS Message:
In iPhone OS 4.0 and later, you can send text messages from within your application. This feature is strictly for sending messages. Incoming SMS messages go to the built-in Messages app.
There are serious privacy and security concerns with enabling app access to emails and SMS, and I am glad Apple choose not to do it.
Yes, you can, (at least with SMS) but only in a jailbreak app (which you suggest is ok in your comments).
The sms.db file can be read by apps that aren't sandboxed.
See my answer to a similar question for how to get SMS content. That answer just shows how to get the most recent SMS, but if you just use the commented out while loop, you can iterate through all SMS.
We have a web application and we've built phone applications (iPhone, Android, BlackBerry) to be companions to the site. The usual workflow is that an existing user of the site gets a phone app and then plugs their existing credentials into the phone app and they are off and running, but more often now we are seeing folks who are downloading the app and then (and this should not surprise anyone) don't read the help screen that explains they need to go and get credentials at the web site and therefore cannot connect to the application which does require registration to manage their content. This is a giant usability fail condition.
So we know that we need to put user registration workflows on the phone app.
Other than the obvious solution of duplicating our registration page on the mobile, does anyone know of a better identity solution for the phone? For example, on the desktop we also use Facebook Connect as an identity server and the users love it. I'm looking for something that simple that we can implement across the major smartphone platforms.
Clarifying note:
I should add here that this registration mechanism is likely to; and it would be desirable if it did, go hand in hand with a general identity/authorization mechanism such as the Facebook mechanism mentioned below.
One other place I'm poking around is to see whether there's an openId solution that does not require a browser to pop up.
Restful service might be the e asiest way for you to achieve this, you can use it on any device that can make http requests, so you can make your own login screens and talk to the s ervice that way...
Facebook has a Connect API for the iPhone. Integrating it into your iPhone app is very smooth.
http://developers.facebook.com/connect_iphone.php
On the BlackBerry we were able to build a fairly robust REST pipeline between the client apps in the field and our servers. We primary use the framework for updates, but the device API is generic enough to be able to build almost anything you need via standard HTTP/HTTPS GET/POST calls.
On the RIM platform, look into the HttpConnection API as a starting point. There is also an example on the BlackBerry Developer's site which will help. Finally, I believe there are several examples inside the sample package that comes with every BlackBerry JDE (IDE + API download).