All Projects â†’ cutelyst â†’ Simple Mail

cutelyst / Simple Mail

Licence: lgpl-2.1
An SMTP library written in C++ for Qt. Allows applications to send emails (MIME with text, html, attachments, inline files, etc.) via SMTP. Supports SSL and SMTP authentication.

Projects that are alternatives of or similar to Simple Mail

Versatile
A simple 3D model editor based on simple quads and a sprite set.
Stars: ✭ 132 (-1.49%)
Mutual labels:  qt, qt5
Notepanda
📃 A simple cross-platform notepad. Based on Qt and C++.
Stars: ✭ 134 (+0%)
Mutual labels:  qt, qt5
Mailmergelib
MailMergeLib is a mail message client library which provides comfortable mail merge capabilities for text, inline images and attachments, as well as good throughput and fault tolerance for sending mail messages.
Stars: ✭ 97 (-27.61%)
Mutual labels:  mime, smtp
Qtbase
Qt Base (Core, Gui, Widgets, Network, ...)
Stars: ✭ 1,298 (+868.66%)
Mutual labels:  qt, qt5
Qgnomeplatform
QPlatformTheme for a better Qt application inclusion in GNOME
Stars: ✭ 126 (-5.97%)
Mutual labels:  qt, qt5
Reader
Reader for PDF,use Qt5 and Poppler
Stars: ✭ 89 (-33.58%)
Mutual labels:  qt, qt5
Apk Icon Editor
APK editor to easily change APK icons, name and version.
Stars: ✭ 104 (-22.39%)
Mutual labels:  qt, qt5
Xi Qt
A Qt front-end for xi-editor. Experimental (WIP)
Stars: ✭ 85 (-36.57%)
Mutual labels:  qt, qt5
Autoannotationtool
A label tool aim to reduce semantic segmentation label time, rectangle and polygon annotation is supported
Stars: ✭ 113 (-15.67%)
Mutual labels:  qt, qt5
Qhttpengine
HTTP server for Qt applications
Stars: ✭ 112 (-16.42%)
Mutual labels:  qt, qt5
Bitsofbytes
Code and projects from my blog posts.
Stars: ✭ 89 (-33.58%)
Mutual labels:  qt, qt5
Pref
Portable Reverse Engineering Framework
Stars: ✭ 127 (-5.22%)
Mutual labels:  qt, qt5
Linuxdeployqt
Makes Linux applications self-contained by copying in the libraries and plugins that the application uses, and optionally generates an AppImage. Can be used for Qt and other applications
Stars: ✭ 1,287 (+860.45%)
Mutual labels:  qt, qt5
Tidal Discord Rich Presence Unofficial
UNOFFICIAL Tidal Discord Rich Presence
Stars: ✭ 93 (-30.6%)
Mutual labels:  qt, qt5
Otter Browser
Otter Browser aims to recreate the best aspects of the classic Opera (12.x) UI using Qt5
Stars: ✭ 1,289 (+861.94%)
Mutual labels:  qt, qt5
Awesome Kde
A curated list of awesome apps, extensions, modules, themes and tools for the KDE Desktop Environment.
Stars: ✭ 101 (-24.63%)
Mutual labels:  qt, qt5
Examples
Learn to create a desktop app with Python and Qt
Stars: ✭ 1,196 (+792.54%)
Mutual labels:  qt, qt5
Borg Backup Gui
BORG BackUP GUI is a simple GUI for managing Borg backups. Currently I am developing some extensions.
Stars: ✭ 77 (-42.54%)
Mutual labels:  qt, qt5
Telegram Qt
Qt-based library for Telegram network
Stars: ✭ 105 (-21.64%)
Mutual labels:  qt, qt5
Embedded Ide
IDE for C embedded development centered on bare-metal ARM systems
Stars: ✭ 127 (-5.22%)
Mutual labels:  qt, qt5

SimpleMail Build Status

The SimpleMail is small library writen for Qt 5 or 6 (C++11) that allows applications to send complex emails (plain text, html, attachments, inline files, etc.) using the Simple Mail Transfer Protocol (SMTP).

Features:

  • Blocking and Asyncronous modes
  • SMTP pipelining
  • TCP and SSL connections to SMTP servers (STARTTLS included)
  • SMTP authentication (PLAIN, LOGIN, CRAM-MD5 methods)
  • sending MIME emails (to multiple recipients)
  • plain text and HTML (with inline files) content in emails
  • nested mime emails (mixed/alternative, mixed/related)
  • multiple attachments and inline files (used in HTML)
  • different character sets (ascii, utf-8, etc) and encoding methods (7bit, 8bit, base64)
  • multiple types of recipients (to, cc, bcc)
  • error handling (including RESET command)
  • output compilant with RFC2045

Examples

Async Exaplame:

#include <QCoreApplication>
#include <SimpleMail/SimpleMail>

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    // First we need to create an Server object
    auto server = new SimpleMail::Server;

    // We will use the Gmail's smtp server (smtp.gmail.com, port 465, ssl)
    server->setHost("smtp.gmail.com");
    server->setPort(465);
    server->setConnectionType(SimpleMail::Server::SslConnection);

    // We need to set the username (your email address) and the password for smtp authentification.
    server->setUsername("[email protected]");
    server->setPassword("your_password");

    // Now we create a MimeMessage object. This will be the email.
    SimpleMail::MimeMessage message;
    message.setSender(SimpleMail::EmailAddress("[email protected]", "Your Name"));
    message.addTo(SimpleMail::EmailAddress("Recipient's Name <[email protected]>"));
    message.setSubject("Testing Subject");

    // First we create a MimeText object.
    // This must be created with new otherwise it will be deleted once we leave the scope.
    auto text = new MimeText;

    // Now add some text to the email.
    text->setText("Hi,\nThis is a simple email message.\n");

    // Now add it to the mail
    message.addPart(text);

    // Now we can send the mail
    SimpleMail::ServerReply *reply = server->sendMail(message);
    QObject::connect(reply, &SimpleMail::ServerReply::finished, [reply] {
        qDebug() << "ServerReply finished" << reply->error() << reply->responseText();
        reply->deleteLater();// Don't forget to delete it

        qApp->quit();
    });

    app.exec();
}

Blocking example:

#include <QCoreApplication>
#include <SimpleMail/SimpleMail>

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    // First we need to create an Sender object
    // We will use the Gmail's smtp server (smtp.gmail.com, port 465, ssl)
    SimpleMail::Sender sender("smtp.gmail.com", 465, SimpleMail::Sender::SslConnection);

    // We need to set the username (your email address) and the password
    // for smtp authentification.
    sender.setUser("[email protected]");
    sender.setPassword("your_password");

    // Now we create a MimeMessage object. This will be the email.
    SimpleMail::MimeMessage message;
    message.setSender(SimpleMail::EmailAddress("[email protected]", "Your Name"));
    message.addTo(SimpleMail::EmailAddress("Recipient's Name <[email protected]>"));
    message.setSubject("Testing Subject");

    // First we create a MimeText object.
    SimpleMail::MimeText text;

    // Now add some text to the email.
    text.setText("Hi,\nThis is a simple email message.\n");

    // Now add it to the mail
    message.addPart(&text);

    // Now we can send the mail
    sender.sendMail(message); // Blocks untill mail is delivered or errored
}

License

This project (all files including the demos/examples) is licensed under the GNU LGPL, version 2.1+.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].