QT Creator отправляет смс сообщение - PullRequest
0 голосов
/ 07 февраля 2019

Не могу понять, как отправить SMS-сообщение на телефон с QT Creator, работающим в Ubuntu 16.04.Это легко сделать с помощью MS Visual C ++

Код ниже прекрасно работает в Windows Visual C ++ / CLI.Есть ли эквивалент этого или некоторого эквивалентного кода в QT Creator на Ubuntu 16.04?


using namespace System::Net;        //need for Webclient
using namespace System::Net::Mail;  //need for sending SMS text message via email

//send an SMS message via email:
MailAddress^ to = gcnew MailAddress("760xxxxxxx@vmobl.com"); //the generic Virgin Mobile format
MailAddress^ from = gcnew MailAddress("xxxxxxxx@roadrunner.com"); //hosted by Time Warner Cable
MailMessage^ message = gcnew MailMessage(from,to);
message->Subject = "What's up?";    //the subject line
message->Body = Globals::TextMsg;   //TestMsg is a string; the body of the message to be sent
SmtpClient^ client = gcnew SmtpClient;  //create a client
client->Host::set("mail.twc.com");      //the outgoing SMTP mail server of Time Warner
client->Send(message);          //send message to phone
client->~SmtpClient();          //destroy the client

1 Ответ

0 голосов
/ 10 февраля 2019

8 часов болей в мозгу, и это решено.Чтобы выполнить ту же операцию, что и выше, за исключением Ubuntu (16.04 в моем случае) с QTcreator (5.5 в моем случае) и заменить самый отвратительный, отвратительный и по-настоящему отвратительный код C # на чистый, благородный и красивый C ++, сделайте следующее:
Использование SMTP-сервера Time-Warner (вместо Gmail-сервера):
1. Перейти https://github.com/xcoder123/SimpleSmtp_SSL_QT5/tree/master/smtp
2. Скачать, клонировать или распаковать;затем откройте этот превосходный проект в QT
3. Сделайте следующие изменения в smtp.h:
#include <QtNetwork/QTcpSocket> //add this to work with Time Warner Cable ''
публично: Smtp замените 'int port = 465' на 'int port = 587'// gmail использует 465, Time Warner использует 587
в частном порядке:
//QSslSocket *socket; //this works with Gmail
QTcpSocket *socket; //this works with Time Warner Cable
4. Внесите следующие изменения в smtp.cpp:
в Smtp :: Smtp
//socket = new QSslSocket(this); //this works with Gmail
socket = new QTcpSocket(this); //this works with Time Warner Cable
в пустом Smtp :: sendMail
//socket->connectToHostEncrypted(host, port); //"smtp.gmail.com" and 465 for gmail TLS
socket->connectToHost(host, port); //Time Warner doesn't use Encrypted
в пустом Smtp :: readyRead
//socket->startClientEncryption(); //Time Warner doesn't use Encryption, so comment all this out
// if(!socket->waitForEncrypted(timeout))
// {<br> // qDebug() << socket->errorString();<br> // state = Close;<br> // }

//*t << QByteArray().append(user).toBase64()  << "\r\n";
*t << QByteArray().append(user)  << "\r\n";  //Time Warner doesn't use base64

При этом электронные письма можно отправлять из пользовательского интерфейса.Чтобы отправить текстовое сообщение на Virgin Mobile, замените получателя 10-значным номером телефона @ vmobl.com.Пример: "7609999999@vmobl.com".Текстовое сообщение будет «Тема:» плюс тема.Тело не появится, поэтому оставьте пустым.Нет простого способа избавиться от "Subject:" в начале, который я мог найти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...