Russian Qt Forum
Ноябрь 23, 2024, 22:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Проблема с отправлением почты  (Прочитано 10705 раз)
Buller
Гость
« : Май 26, 2012, 13:54 »

День добрый, ув. форумчане.

Решил в образовательных целях написать маленький сендер: отправка сообщения на имейл по щелчку мыши.
Скачал для сих целей Class for sending email
Класс работает безупречно, что непременно радует.
Сделал форму в Дизайнере, и кнопку, по нажатию на которой будет слаться сообщение. Код сендинга из main.cpp перенес в обработчик кнопки:
Код:
void form::on_pushButton_pressed()
{
        SmtpAuthData smtpAuthData;
        SmtpAuthData::Data data;
        // your email address
        data.email = "От кого";
        // login for your email account
        data.login = "Логин";
        // name which will be shown in From: line(optional)
        //data.name = QString::fromLocal8Bit("");
        // password for auth on email account
        data.password = "Пароль";
        // port for host 587 default
        //data.port = "";
        // ssl support
        //data.enableSsl = true;
        smtpAuthData.rewriteData(data);

        Letter letter(smtpAuthData);

        QString secondFile("");

        QStringList filesList;
        filesList << secondFile;


        QString receivers = QString::fromLocal8Bit("Кому");
        //QString blindCopyReceivers = "";
        // choice letter encoding
        //letter.set_encoding("");
        letter.set_receivers(receivers);
        //letter.set_blindCopyReceivers(blindCopyReceivers);
        //letter.set_subject(QString::fromLocal8Bit(""));
        //letter.set_attachement(filesList);
        letter.set_text(QString::fromLocal8Bit("Проверка"));

        // send letter
        letter.send();
}

Приложение нормально компилируется, никаких ошибок, просто сообщение перестало отправляться.
Точнее сказать, в работающем варианте вывод такой:
Код:
Email at ->  "От кого" 
Ready read ->  31
Block size ->  31
Server request ->  "220 smtp9.mail.ru ESMTP ready
"
Ready read ->  88
Block size ->  88
Server request ->  "250 STARTTLS
"
Ready read ->  18
Block size ->  18
Server request ->  "334 VXNlcm5hbWU6
"
Ready read ->  18
Block size ->  18
Server request ->  "334 UGFzc3dvcmQ6
"
Ready read ->  30
Block size ->  30
391
Server request ->  "235 Authentication succeeded
"
Ready read ->  8
Block size ->  8
Emails to ->  "Кому"
Server request ->  "250 OK
"
Ready read ->  14
Block size ->  8
Server request ->  "250 Accepted
"
Ready read ->  56
Block size ->  56
Server request ->  "354 Enter message, ending with "." on a line by itself
"
Ready read ->  28
Block size ->  28
Server request ->  "250 OK id=1SYEZa-0001Ad-Sr
"

А в окончательном такой:
Код:
Email at ->  "От кого" 
Как починить?
« Последнее редактирование: Май 30, 2012, 18:31 от Buller » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Май 26, 2012, 15:51 »

может из-за того, что твои переменные уничтожаются, поскольку созданы на стеке, а не в куче?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Buller
Гость
« Ответ #2 : Май 27, 2012, 12:45 »

может из-за того, что твои переменные уничтожаются, поскольку созданы на стеке, а не в куче?

Как исправить?
Мой текущий уровень знания языка не позволяет это сделать самостоятельно.
Записан
Bepec
Гость
« Ответ #3 : Май 27, 2012, 15:40 »

Создавать с помощью new? Сделать полем класса?
Записан
Buller
Гость
« Ответ #4 : Май 29, 2012, 08:07 »

Создавать с помощью new? Сделать полем класса?

Не мог бы ты мне помочь с моим примером кода? Попробывал с помощью new, не получилось.
Записан
Bepec
Гость
« Ответ #5 : Май 29, 2012, 09:11 »

Если выложишь свой проект (или минимально компилируемый, чтоб запускалося) - тогда да. Посмотрю ошибки, подскажу.

А писать свой с 0 - извини, у меня времени на это не особо Подмигивающий
Записан
Buller
Гость
« Ответ #6 : Май 29, 2012, 10:40 »

Если выложишь свой проект (или минимально компилируемый, чтоб запускалося) - тогда да. Посмотрю ошибки, подскажу.

А писать свой с 0 - извини, у меня времени на это не особо Подмигивающий

Понимаю, спасибо) Как будет свободное время, вот мой проект.
Записан
Bepec
Гость
« Ответ #7 : Май 29, 2012, 10:50 »

Взял. После обеда посмотрю. Т.е. часа через полтора отвечу Подмигивающий

update:

Боги, ЗА ЧТОООО?Непонимающий Ты ещё скажи, что это у тебя хотя бы не вываливается в ассерты? Улыбающийся


1) QSettings - Необходимо ему указывать блин параметры, а то у тебя тупо куда-то в пустоту пишется и из пустоты что-то считывается!
2)
Код:
char *email = mail.toAscii().data(); 
что ты этим хотел сказать???

update:

Полностью неработоспособный проект... Полностью неработоспособная программа... Что сказать - ничего не скажу.


PS или ты мне сунул неработоспособный проект, да? И не проверил, да? Или же я ошибаюсь? *умиротворённый*
« Последнее редактирование: Май 29, 2012, 13:36 от Bepec » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #8 : Май 29, 2012, 14:15 »

если для создания QSettings использовать конструктор по умолчанию (полагаю в проекте именно так, я его не качал), то открывается доступ к вполне определённому месту, в документации это описано.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #9 : Май 29, 2012, 14:24 »

Ошибаешься.

Цитировать
If QCoreApplication::setOrganizationName() and QCoreApplication::setApplicationName() has not been previously called, the QSettings object will not be able to read or write any settings, and status() will return AccessError.

Собственно ты прав - там вызван конструктор по умолчанию. И соответственно вместо записанных значений он возвращал NULL.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Май 29, 2012, 14:35 »

именно задание названия приложения и/или организации я и подразумевал Улыбающийся плохо, что это не все делают.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #11 : Май 29, 2012, 14:36 »

Я это не делаю. Ибо по-моему это излишне. Версия/название программы - это ещё ладно, а вот название организации и прочая - излишня Подмигивающий
Записан
Buller
Гость
« Ответ #12 : Май 29, 2012, 18:25 »

Полностью неработоспособный проект... Полностью неработоспособная программа... Что сказать - ничего не скажу.

Исправил. Не работает. Жду новой критики.
« Последнее редактирование: Май 29, 2012, 18:30 от Buller » Записан
Bepec
Гость
« Ответ #13 : Май 29, 2012, 18:45 »

Кхм. Благовоспитанные люди за такое обычно извиняются Улыбающийся Ну да не мне вас судить.
Записан
Buller
Гость
« Ответ #14 : Май 30, 2012, 09:45 »

Вы правы. Но я вынужден просить вас проявить благосклонность по отношению ко мне и помочь, если это вас не затруднит.
P.S. Что делать, если Qt в упор не видит ui_mainwindow.h, который лежит в этом же каталоге?
« Последнее редактирование: Май 30, 2012, 11:08 от Buller » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 23.