I need my locally-installed, thick-client application (Qt / C++) to generate a ready-to-be-sent email message on the client's machine:
This message must contain the contents of a relatively small (15K - 200K) binary file.
Many of my users will be disconnected at the time this message is generated, so it is possible the email will need to sit in the outbox until a later time.
This application will run on Windows, Mac OS X, and various Linux distros (official support for Ubuntu/Debian and Fedora), and there is no requirement that specific email clients need to be installed.
I have already tried:
Opening a mailto: link using QDesktopServices::openUrl() with the attach (or attachment) parameter. But those parameters are not officially part of the protocol, and some clients (notably Outlook) ignore them.
Encoding the file using Base64 and adding it as part of the body parameter of a mailto: link. But the length of the mailto link is truncated by some email clients (again, notably Outlook) so this will not work.
Google Picasa achieves this (at least, on Windows; haven't checked other OS's) when you send pictures from within the application. It creates a message with the attachments and some pre-filled text. You can then edit the message and send at your convenience. Any ideas how they are doing this?
You could create an .eml file and open it which should give you the effect you want as long as there is any email client registered in the system to handle files with this extension. I'm sure this is not as universal as the mailto: scheme but if mailto: does not work for you I think this could be the second best option to try.
From http://www.coolutils.com/Formats/EML
Since EML files are created to comply
with the industry RFC 822 standard,
they can be used with most e-mail
clients, servers and applications.
Besides the Microsoft Outlook Express,
EML files can be opened using most
e-mail clients, such as Microsoft
Outlook, Microsoft Entourage, Mozilla
Thunderbird, Apple Mail, and
IncrediMail.
Side note
When I click 'E-mail' in Picasa I get dialog where I can choose which application (Thunderbird or Google Mail) I want to send email with. This means Picasa knows specific email client being used to send email and can use custom method, specific to chosen email client, to send email. This is of course just speculation but it might be that Picasa makes user to choose email client because there's no generic way to do what you ask about.
I dont think you are using the correct approach ; use MAPI / C++. I have done this several times both in Outlook / Thunderbird using MAPI/ C++ . You can choose the default email client by querying the registry ; I think thats what all applications do.
Also see the link here http://lists.trolltech.com/qt-interest/2006-02/thread00861-0.html
Some time ago I've began to write a small library for opening the 'default email client' in a platform independent way. It still may need some work, but you can use it as a base if you want: https://github.com/picaschaf/qt-email
Related
I kept it simple with images and added my tracking links. I did not use the coding version. It's very basic but still shows differently in my outlook vs gmail.
I have tried using code in certain modules vs images but the result is the same. View gendgrid preview, outlook & gmail
The email that SendGrid sends to Outlook is the same as the email that SendGrid sends to Gmail.
However, every email client renders email differently. What's allowed and supported in one inbox provider isn't the same as the others.
Make sure to test your emails in multiple inboxes and fix any inconsistencies, before sending it out to real customers.
Besides that, I can't answer your question without more information. Can you share your template and add screenshots of the email in gmail vs outlook?
I am developing a Django-based system. It is kind of client-tracking tool.
Some users can work with different client accounts.
I would like to track the emails among users and clients within the application.
The company uses MS Outlook Server as a mail server and users are sending emails from their workstations.
The goal is to have the list of emails to/from users/client on the web page.
I see some possible ways how to do this.
Make the email form on the web page and send all emails from this page. Thus we can store the email sent.
While sending the email - manually add a CC field with the address of robot who will have access to this mail thread and can fetch messages from the inbox sorting them by the sender/recipients.
Automatically fetch messages from user mailboxes (don't want to store their passwords though)
Probably use some mail filter on the mail server to forward messages from/to specified address (don't know how to do this)
But maybe someone can give some advices? Any ideas, guys?
I had done something similar a couple years ago (with Postfix, however, not with MS Exchange).
The best approach IMO is to setup a mailserver to blind-copy each email to your script. In Postfix this called a "custom transport". This way your clients will be able to send emails using any program, not necessary through a web form. AFAIK, nearly all production email archiving solutions work that way.
Sounds like you are looking for something like the journaling feature in microsoft exchange-server. It allows you to define a special mailbox that will recieve a copy of all mails. You can find more information about this here, here and here
Once all the messages are in one mailbox you can access it from your application.
I'm looking for a way for users to message each other via the website, with their own inbox, sent, etc folders, and to receive and reply to these messages via email as well. The email addresses used for replying are generated by the app to hide user's real emails. The app sits in the middle of the two users via the site and via email.
Both django-messages and django-postman give very little information about what email-related features they have. Can either do this, or is there an alternative?
Thanks
django-messages includes pretty much all you asked for including inbox, outbox, trash and many more goodies
django-postman seems even better and is in active development
try out these packages they both include documentation.
I want to open/start my application when a I click on a particular URL from the browser for
Symbian OS Series60 5th edition.(So, if I click on a "station" Url, it will start my application & play through my player)
Any possible way that I can get it to do this?
I won't offer any guarantee that you can do this on your own.
I suggest you start by reading the documentation for the Nokia Content Handling Framework.
However, there is a difference between the Operating System understanding that a specific MIME type should be handled by a specific application and the Web Browser actually allowing that to happen.
Several Web browser can be installed on a Series60 5th edition handset. I'll assume you are only interested in the default Webkit-based web browser already included in the phone but you need to be aware that it may not be the one the phone owner will ultimately use on a regular basis. Opera Mini is very popular and it certainly won't allow you to do what you want here.
Even with the default Webkit web browser, it is very possible that you won't be able to do what you want without at least some support from the handset manufacturer since you rely on either:
The Symbian Content Handling Framework being able to consider the scheme of a URL (instead of just a MIME type) as a content identifier and the Web Browser being fully integrated with the Content Handling Framework
or the Web Browser allowing you to write a plugin that makes it able to understand what is basically a new URL scheme (a URL not beginning with "http://"), display it as a hyperlink (you might just get that right now on your phone without doing any work. it's worth a try.) and behave the way you want when the user activates the hyperlink.
There is one alternative worth attempting: Keep the "http://" URL scheme but make sure your web server returns your own MIME type in the HTPP headers when it receives a HTTP GET request for the data.
Obviously, you will need your application installed on the handset and able to handle that MIME type.
You have a better chance of the default Web Browser being sufficiently integrated with the operating system already for this to work.
I'm wondering what is the quickest and most reliable way to forward mail from an IMAP account.
My university does not allow our student-mailbox to forward to a private e-mail account (everybody uses either Gmail or Hotmail here). It's a political thing, not technical. We do have IMAP access to the mailbox. I would like to have a service which downloads the mail through IMAP, and forwards. And it would be nice to scale it, so thousands of students can use it. Eventually, I want to build a public signup page, and have it processed automatically from there.
So far, I've made a decent PHP script which connects, downloads headers and body parts, and ties it all together. I have two problems with that.
1) I'm downloading all kind of parts, and sticking them back together. I hope that every exotic attached file, weird encoded piece of text and every type of header survives this. I'm not even sure I have the complete header.
2) The to: e-mail address becomes the private e-mail address, not the original student e-mail address. I think this is lame, and inconvenient in searching and archiving.
Is the PHP script the way to go? Is there a trick using a particular linux mail service/daemon? Does IMAP have a 'forward' command, I'm missing?
You might want to look at Fetchmail, as this sounds like the problem it was designed to solve. Fetchmail retrieves mail from POP/IMAP/etc servers and forwards it to SMTP/LMTP/etc servers. Fetchmail has the advantage of a few years and lots of users ironing out problems with various IMAP servers.
Fetchmail seems like the way to go. I can use PHP to generate/edit a fetchmail command file, so that will cover the public sign-up. I'm looking for a package/script who allready does this.
The Gmail pull only works with POP3, not with IMAP.
If using Gmail you can configure GMAIL to pick up mail from other accounts.