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

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

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Класс для отсылки почты с вложениями по SMTP  (Прочитано 27969 раз)
pokidoff
Гость
« : Март 22, 2011, 11:14 »

Написал класс для отправки почты с вложениями по SMTP. Делюсь.

Пример использования:
Код:
   
    QSMTP *mail = new QSMTP(/*HOST*/,/*PORT*/ 25);
    mail->setSender(/*SENDER E-MAIL*/,/*SENDER NAME*/);

    QHash<QString,QString> rcpts;
    rcpts.insert(/*RECIPIENT1 E-MAIL*/,/*RECIPIENT1 NAME*/);
    rcpts.insert(/*RECIPIENT2 E-MAIL*/,/*RECIPIENT2 NAME*/);
    rcpts.insert(/*RECIPIENT3 E-MAIL*/,/*RECIPIENT3 NAME*/);

    mail->setRecipients(rcpts);

    mail->setAttachments(QStringList()<<"C:\\smtp.7z"<<"C:\\smtp.zip");
    mail->setSubject("Пробный запуск");
    mail->setBody("Письмо сгенерировано QT");
    mail->setEncoding("UTF-8");
    mail->sendMail();

Из возможностей:
- работа напрямую с SMTP сервером;
- возможность использования html в теле письма;
- отправка нескольким адресатам;
- отправка одного или нескольких вложений;
- есть возможность изменять кодировку письма. По-умолчанию - windows-1251


SSL не поддерживает, кто хочет может развить тему
« Последнее редактирование: Март 23, 2011, 14:37 от pokidoff » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Март 22, 2011, 11:17 »

Опиши возможности и пример использования.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ритт
Гость
« Ответ #2 : Март 22, 2011, 15:39 »

Письмо отсылается в кодировке windows-1251, но это можно поправить в коде.
а вот это уже плохо. нужно бы сеттер/геттер под эти нужды - дабы не хакать сорцы каждый раз.

з.ы. s/QT/Qt/g
Записан
Ubuntu_linux
Гость
« Ответ #3 : Март 23, 2011, 01:21 »

Клас, то что не хватало....
А на каких доменах тестилос?
Записан
pokidoff
Гость
« Ответ #4 : Март 23, 2011, 08:57 »

Тестилось в корпоративной локальной сети
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Март 23, 2011, 09:58 »

SSL/TSL умеет? С gmail сможет работать?
Перенеси описание из второго поста в первый пост.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Ubuntu_linux
Гость
« Ответ #6 : Март 23, 2011, 13:47 »

Все таки допиляйте, чтоб можно било изменять кодировку! Пожалуйста. Плачущий
Записан
pokidoff
Гость
« Ответ #7 : Март 23, 2011, 14:38 »

Допилил и проверил, все работает. См первый пост
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #8 : Март 24, 2011, 20:08 »

SSL/TSL умеет?

+1 за эту фичу
Записан
nn1317
Гость
« Ответ #9 : Апрель 03, 2011, 21:16 »

авторизация на смтп сервере есть? типа чтоб через яндекс-ский смтп отправить)
Записан
blood_shadow
Гость
« Ответ #10 : Апрель 09, 2011, 17:26 »

народ, это у меня только проблема?
взял этот класс прицепил к нему авторизацию, кодировку не трогал и если отправить с кириллицей
получаю на другой почте неправильные символы, типа имя отправителя "Сергей" а получаю Aaii
в чем может быть проблема?
Записан
blood_shadow
Гость
« Ответ #11 : Апрель 09, 2011, 17:39 »

все разобрался, почти день убил.. вечером будет готовое решение с полной поддержкой кириллицы
и авторизацией
Записан
nn1317
Гость
« Ответ #12 : Апрель 09, 2011, 17:57 »

не знаю)) я за 10 минут поставил и настроил ssmtp и через QProcess просто запускал отправку письма с любыми вложениями)) стоит ли мучаться?))
Записан
AlphaGh0St
Гость
« Ответ #13 : Март 01, 2012, 23:55 »

взял этот класс прицепил к нему авторизацию

Всем привет!
Возникла необходимость отправить письмо, воспользовался кодом с поддержкой авторизации, предоставленным blood_shadow. Оба ящика (отправителя и получателя) находятся на одном сервере - mail.ru.
Код отправки письма (с вложением):
Код:
    SMTP smtp("smtp.mail.ru", 587);
    smtp.setSender("my_mail1@mail.ru", "my_mail1");

    QHash <QString, QString> hash;
    hash.insert("my_mail2@mail.ru", "my_mail2");

    smtp.setRecipients(hash);
    smtp.setEncoding("UTF-8");
    smtp.setLogin("my_mail1@mail.ru");
    smtp.setPass("my_pass");

    smtp.setSubject("test");
    smtp.setBody("just test");
    smtp.setAttachments(QStringList() << "D:\\test_file.zip"); // прикреплённый файл
    smtp.sendMail();

Прошло 10 минут, письмо так и не пришло.
Подскажите, в чём проблема?

Благодарю.
Записан
Странник
Гость
« Ответ #14 : Март 02, 2012, 00:08 »

в Qxt довольно неплохо поддержка SMTP была реализована, кому интересно - гляньте доку. защищенное соединение и вложения поддерживались точно, по поводу html не помню.
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


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