Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cutelyst/simple-mail
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.
https://github.com/cutelyst/simple-mail
attachment c-plus-plus c-plus-plus-11 inline-files mime qt qt5 recipients simplemail smtp smtp-authentication
Last synced: 3 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/cutelyst/simple-mail
- Owner: cutelyst
- License: lgpl-2.1
- Created: 2015-11-10T23:19:04.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2025-01-06T21:47:00.000Z (11 days ago)
- Last Synced: 2025-01-08T13:12:19.364Z (10 days ago)
- Topics: attachment, c-plus-plus, c-plus-plus-11, inline-files, mime, qt, qt5, recipients, simplemail, smtp, smtp-authentication
- Language: C++
- Homepage:
- Size: 357 KB
- Stars: 213
- Watchers: 12
- Forks: 64
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
SimpleMail
=============================================The SimpleMail is small library writen for Qt 5 or 6 (C++14) that allows applications to send complex emails (plain text, html, attachments, inline files, etc.) using the Simple Mail Transfer Protocol (SMTP).
## Features:
- Asyncronous operation
- 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
```c++
#include
#includeint 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 "));
message.setSubject("Testing Subject");// First we create a MimeText object.
auto text = std::make_shared();// 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 itqApp->quit();
});app.exec();
}
```## License
This project (all files including the demos/examples) is licensed under the GNU LGPL, version 2.1+.