- General questions
-
Troubleshooting
- When I try to connect to my mail server, it fails with an I/O Error.
- I'm able to connect, but LogicMail gets stuck on another error.
- I'm running BlackBerry OS vX.Y, will LogicMail work with my unit?
- I'm trying to send E-Mail, but I'm getting "Problem with Sender" …
- Why does SMTP switch to port 465 when I enable SSL?
- Whenever I start LogicMail, I have to confirm the connection.
- Development
General questions
What about new message notification?
a.k.a. How can I get my BB to buzz when I get a new message?
a.k.a. Can you implement an auto-refresh feature? It should be easy, right?
I get this feature request often enough, that I figured I might as well provide a general explanation. As of 0.4.x, LogicMail is a very synchronous application. That means it only does things when you interact with it. Nothing is running in the background, and there is no easy way to have something running in the background without breaking things. The state of the application's interactions with the mail server is always directly in line with what you are doing with it. There is no easy way for it to go off and do other things while you have the device in your pocket. To do otherwise, would require a major architectural change in the application.
Ok, got that out of the way! :-) Now here's what you've been waiting for... The whole point of 0.5 is to implement that major architectural change! It'll take a while to finish, since I do this in my spare time. However, the end goal is to support anything and everything (within reason) related to the common feature requests mentioned above. If you are at all curious how that is coming together from a developer's perspective, I'm trying to keep some level of design documentation on the design page.
What is the code signing issue?
a.k.a. Why won't you implement <cool device integration feature> in LogicMail?
There are portions of the BlackBerry API that cannot be used in software on an actual BlackBerry device, unless the binary for that software is digitally signed with a key from RIM. These portions mainly cover potentially invasive device integration and cryptography. Up to this point, LogicMail has explicitly avoided using any interfaces that would require signed code. However, moving forward, there will be an increasing number of user feature requests that require use of signed interfaces to implement.
At this point, you are probably wondering why I am avoiding use of signed APIs. Even though the code signing privilege costs money, the cost isn't a prohibiting factor. The issue is that LogicMail is an open-source project. What that means is that anyone can, and should, be able to download the source code, compile it themselves, and run the output on their device. If I were to use signed APIs, everyone would be forced to only use official builds. If they wanted to build it themselves, they would have to purchase their own code signing privileges from RIM, or only be able to run the application on the simulator.
I know this is a topic of potentially heated discussion, and also accept that the official position may have to change in the future. If anyone wants to discuss it further, please feel free to do so in the Discussions area.
Troubleshooting
When I try to connect to my mail server, it fails with an I/O Error.
First, double-check all your configuration settings. You should especially try the "Use MDS Proxy" setting, which may or may not be required for your unit. If you are sure they are correct, then chances are that your BlackBerry is not properly configured for TCP networking.
Make sure that "TCP" is setup in your Blackberry's configuration (Options -> Advanced Options -> TCP). The specific settings are provider-specific, so you'll have to search the web and/or ask your provider.
To test TCP connectivity, try LogicMail again, or try any other program that uses TCP (Opera Mini is a good one for this).
I'm able to connect, but LogicMail gets stuck on another error.
This other error would mention the issue if LogicMail has some idea as to what it is, or it will simply say "Unknown error" otherwise. The best thing you can do at this point is to capture a transcript of the network traffic between your BlackBerry (or a simulator) and your mail server. Alternatively, you can simulate that traffic using something like telnet. This information can be used to produce a useful bug report that action can be taken upon. For more information on how to do this, you should look at the Debugging page.
I'm running BlackBerry OS vX.Y, will LogicMail work with my unit?
All LogicMail releases will work on the mentioned version of BlackBerry OS, or any higher version.
I'm trying to send E-Mail, but I'm getting "Problem with Sender" errors.
You need to go into the global configuration screen ("Config" menu option), and set the "Full name" field.
Why does SMTP switch to port 465 when I enable SSL?
There are two common ways you can establish a network connection using SSL:
- Connect directly to a special port that expects SSL
- Connect to a non-SSL port, then send "STARTTLS" to switch to SSL mode
Typically, POP and IMAP servers use the first approach. (ports 110/143 vs. ports 993/995). The same approach is supported with SMTP (port 25 vs. port 465), but is less common to see. Due to platform API limitations, however, it is impossible for LogicMail to support the second approach. Therefore, if you want to use SMTP with SSL, you have to use an SMTP server that supports direct SSL connections.
Whenever I start LogicMail, I have to confirm the connection.
Whenever you start LogicMail, you get a message that looks like:
"The application LogicMail has attempted to access a low-level network connection. Would you like to allow this?"
- From your BlackBerry's main screen, go to Options --> Security Options --> Firewall
- Change the firewall status to Enabled, and save changes
- Start LogicMail and try to connect
- When it prompts you, there will be an option to always allow the connection and never be prompted again.
NOTE: enabling the firewall may cause problems for other applications on your device, such as JiveTalk. After following the above steps, ensure that all your other applications are working correctly by testing each one.
Development
What do I need to setup a development environment for LogicMail?
- RIM BlackBerry JDE
- NetBeans IDE
- Subversion client
- For more information, go to the Development page.
Why are there separate configurations for BB v4.1 and BB v4.0?
There are minor API differences between the two versions, and LogicMail uses one of the affected parts. As such, it is impossible to run the BB v4.1 configuration of LogicMail on a BB v4.0 device. While the motivations for maintaining a BB v4.0 port are really not all that high, doing so has allowed me to work out the mechanisms for having a single source tree that can target multiple BB versions. These same mechanisms will become useful once I have a reason to start incorporating BB OS v4.2 specific features.
Can I develop/build LogicMail with Linux and emacs/vi?
- The trunk (latest development code) can now be built directly using ant, some files from the RIM JDE, and some file from the Sun J2ME SDK. The README.txt file in the lib subdirectory should have the necessary details on what you will need to download.
- For the older branches/versions, it takes a lot more work. My personal approach for the build server involved a lot of tricks and plenty of files from NetBeans. For a more practical approach, one user has contributed this tutorial: Build Logic Mail With Ant
