Skip to content
Attila Tőkés edited this page Apr 23, 2022 · 2 revisions

Here are some examples that sows how to use the SmtpClient for Qt.

Contents:

Example 1 - A simple (text only) email

#include <QtGui/QApplication>
#include "../src/SmtpMime"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // This is a first demo application of the SmtpClient for Qt project
 
    // First we need to create an SmtpClient object
    // We will use the Gmail's smtp server (smtp.gmail.com, port 465, ssl)

    SmtpClient smtp("smtp.gmail.com", 465, SmtpClient::SslConnection);

    // We need to set the username (your email address) and the password
    // for smtp authentification.

    smtp.setUser("[email protected]");
    smtp.setPassword("your_password");

    // Now we create a MimeMessage object. This will be the email.

    MimeMessage message;    
    message.setSender(EmailAddress("[email protected]", "Your Name"));
    message.addRecipient(EmailAddress("[email protected]", "Recipient's Name"));
    message.setSubject("SmtpClient for Qt - Demo");

    // Now add some text to the email.
    // First we create a MimeText object.

    MimeText text;

    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

    smtp.connectToHost();
    smtp.login();
    smtp.sendMail(message);
    smtp.quit();

}

Example 2 - Sending attachments

#include <QtGui/QApplication>
#include "../src/SmtpMime"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // First create the SmtpClient object and set the user and the password.

    SmtpClient smtp("smtp.gmail.com", 465, SmtpClient::SslConnection);

    smtp.setUser("[email protected]");
    smtp.setPassword("your_password");

    // Create a MimeMessage

    MimeMessage message;
    message.setSender(EmailAddress("[email protected]", "Your Name"));
    message.addRecipient(EmailAddress("[email protected]", "Recipient's Name"));
    message.setSubject("SmtpClient for Qt - Demo");

    // Add some text

    MimeText text;
    text.setText("Hi!\n This is an email with some attachments.");
    message.addPart(&text);

    // Now we create the attachment object
    QFile image("image1.jpg");
    MimeAttachment attachment(&image);

    // the file type can be setted. (by default is application/octet-stream)
    attachment.setContentType("image/jpg");

    // Now add it to message
    message.addPart(&attachment);

    // Add an another attachment
    QFile document("document.pdf")
    MimeAttachment documentAttachment(&document);
    message.addPart(&documentAttachment);

    // Now we can send the mail

    smtp.connectToHost();
    smtp.login();
    smtp.sendMail(message);
    smtp.quit();

}

Example 3 - HTML email with embedded images (inline files)

#include <QtGui/QApplication>
#include "../src/SmtpMime"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // First create the SmtpClient object and set the user and the password.

    SmtpClient smtp("smtp.gmail.com", 465, SmtpClient::SslConnection);

    smtp.setUser("[email protected]");
    smtp.setPassword("your_password");

    // Create a MimeMessage

    MimeMessage message;
    message.setSender(EmailAddress("[email protected]", "Your Name"));
    message.addRecipient(EmailAddress("[email protected]", "Recipient's Name"));
    message.setSubject("SmtpClient for Qt - Example 3 - Html email with images");


    // Now we need to create a MimeHtml object for HTML content
    MimeHtml html;

    html.setHtml("<h1> Hello! </h1>"
                 "<h2> This is the first image </h2>"
                 "<img src='cid:image1' />"
                 "<h2> This is the second image </h2>"
                 "<img src='cid:image2' />");


    // Create a MimeInlineFile object for each image
    QFile imageFile1("image1.jpg");
    MimeInlineFile image1 (&imageFile1);

    // An unique content id must be setted
    image1.setContentId("image1");
    image1.setContentType("image/jpg");

    QFile imageFile2("image2.jpg");
    MimeInlineFile image2 (&imageFile2);
    image2.setContentId("image2");
    image2.setContentType("image/jpg");

    message.addPart(&html);
    message.addPart(&image1);
    message.addPart(&image2);

    // Now the email can be sended

    smtp.connectToHost();
    smtp.login();
    smtp.sendMail(message);
    smtp.quit();
}