Я пытаюсь отправлять автоматические электронные письма из приложения Qt, если пользователь создает новый инцидент. Очевидно, что цель состоит в том, чтобы предупредить других людей об этом инциденте.
Моя проблема на самом деле отправить письмо. я нашел это библиотека BlueTiger9. Это отправитель электронной почты, который, кажется, работает, но, к сожалению, не для меня, и в настоящее время я сталкиваюсь с проблемой, которую не могу объяснить.
Я поместил следующие части своего кода, которые, как я предполагаю, помогут определить, что происходит не так. Если что-то еще нужно, просто дайте мне знать.
В моем файле .pro:
LIBS += -L$$PWD/ -lSMTPEmail
Я включил файл, который включает в себя все остальные заголовки, и я также добавил все заголовки библиотеки в свой проект.
#ifndef SMTPMIME_H
#define SMTPMIME_H
#include "smtpclient.h"#include "mimepart.h"#include "mimehtml.h"#include "mimeattachment.h"#include "mimemessage.h"#include "mimetext.h"#include "mimeinlinefile.h"#include "mimefile.h"
#endif // SMTPMIME_H
В каждом включенном заголовке есть еще одно включение следующего кода:
#ifndef SMTPEXPORTS_H
#define SMTPEXPORTS_H
#ifdef SMTP_BUILD
#define SMTP_EXPORT Q_DECL_EXPORT
#else
#define SMTP_EXPORT Q_DECL_IMPORT
#endif
#endif // SMTPEXPORTS_H
Тогда я просто попытался использовать пример отправки простого электронного письма (я просто добавил настройки прокси):
SmtpClient smtp("smtp.office365.com", 587, SmtpClient::TlsConnection);
smtp.setUser("USER_Off365");
smtp.setPassword("PASSWORD_Off365");
smtp.setAuthMethod(SmtpClient::AuthLogin);
QNetworkProxy proxy(QNetworkProxy::HttpProxy, "PROXY_ADD", PROXY_PORT, "PROXY_USER", "PROXY_PW");
smtp.getSocket()->setProxy(proxy);
MimeMessage message;
message.setSender(new EmailAddress("MY_ADDRESS", "MY_NAME"));
message.addRecipient(new EmailAddress("ADDRESS_TO", "A_NAME"));
message.setSubject("Subject");
MimeText text;
text.setText("Test");
message.addPart(&text);
if(smtp.connectToHost()){
if(smtp.login()){
if(smtp.sendMail(message)){
smtp.quit();
}
}
}
Но я не могу подключиться к SMTP-серверу. Ошибка, полученная от сокета: «Ошибка связи с HTTP-прокси»
Пытаясь подключиться к Интернету с моего телефона, я могу перейти к следующему шагу, но у меня все еще есть проблема аутентификации.
На всякий случай мне нужно использовать SMTP-сервер Office365 и настройки для подключения к нему доступны на этом страница. (smtp.office365.com / 587 явный / TLS v1-1.2)
Если у кого-то есть идеи, которые могут помочь, это будет очень признательно!
Задача ещё не решена.
Других решений пока нет …