PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Работа с почтой


Работа с почтой

Сообщений 31 страница 46 из 46

31

ВиниПур написал(а):

Есть прекрасная библиотека для почты PureSMTP для отправки с вложениями

Можно ещё попробовать использовать функции из имеющейся библиотеки, описание которых есть в справке в разделе Mail.

0

32

Пётр написал(а):

Можно ещё попробовать использовать функции из имеющейся библиотеки, описание которых есть в справке в разделе Mail.

Да нее, спасибо, я уже с PureSMTP разобрался. У меня возник другой вопрос. Если тема или текст письма на русском языке то он отображается подозрительными квадратиками или иироглифами. Как эту проблему исправить?

0

33

Думаю что нужно передавать текст в unicode кодировке.
Или по копаться в настройках почты.

Или "побаловаться" с функцией PureSMTP_SetContentType

0

34

Пётр написал(а):

Или "побаловаться" с функцией PureSMTP_SetContentType

Я помотрел в справке, у меня хоть справка и русская но там всё равно всё по английски, я там через переводчик перевёл, но непонял как это мне может пригодится.
А можно поподробней.

Отредактировано Илья (25.03.2011 19:47:23)

0

35

Пётр написал(а):

Думаю что нужно передавать текст в unicode кодировке

Я сделал всё как в одном из видеоуроков. Но письмо неотправлялось пока в настройках программы стояла галочка "Создать uniсode приложение". А когда я галочку убрал то из за смены кодировки (наверное) иероглифы в письме заменились на вопросительные знаки.

0

36

Илья написал(а):

Я помотрел в справке, у меня хоть справка и русская но там всё равно всё по английски, я там через переводчик перевёл, но непонял как это мне может пригодится.А можно поподробней.

Перед отправкой почты, вставь эту строку:

Код:
PureSMTP_SetContentType("text/html; charset=windows-1251")

0

37

Да спасибо, но это решило проблему с текстом, но с темой всё равно ещё проблемы.

0

38

А если тоже самое ("text/html; charset=windows-1251") использовать в аргументе HeaderAddon функции PureSMTP_SendMail?

0

39

Пётр написал(а):

А если тоже самое ("text/html; charset=windows-1251") использовать в аргументе HeaderAddon функции PureSMTP_SendMail?

Я неочень понял что именно надо сделать. Дописать в строку PureSMTP_SendMail после запятой "("text/html; charset=windows-1251")"? Я попробовал, у меня вместо письма пришло совсем другое.

0

40

Надеюсь так понятней

PureSMTP_SendMail(MailTo.s, MailFrom.s, Subject.s, MsgBody.s , Attachments.s , UserName.s , Password.s , "charset=windows-1251")

или так

PureSMTP_SendMail(MailTo.s, MailFrom.s, Subject.s, MsgBody.s , Attachments.s , UserName.s , Password.s , "Content-Type: text/plain; charset=windows-1251")

А вообще, выложи код, которым отправляешь письма.

0

41

Пётр написал(а):

А вообще, выложи код, которым отправляешь письма.

Вот код:

Код:
MySMTPServer.s = "smtp.mail.ru"
MySMTPPort.l = 25 ; 587
If PureSMTP_OpenSMTPConnection(MySMTPServer, MySMTPPort) = #PureSMTP_Ok
  PureSMTP_SetContentType("text/html; charset=windows-1251")
  Status.l = PureSMTP_SendMail("Vsevolod-s10@mail.ru", "Vsevolod-s10@mail.ru","Тема","Текст письма","C:\test.txt","Vsevolod-s10","7391852s")
EndIf

но при таком коде тема отображается квадратиками.

Я зделал как вы говорили:

Код:
MySMTPServer.s = "smtp.mail.ru"
MySMTPPort.l = 25 ; 587
If PureSMTP_OpenSMTPConnection(MySMTPServer, MySMTPPort) = #PureSMTP_Ok
  PureSMTP_SetContentType("text/html; charset=windows-1251")
  Status.l = PureSMTP_SendMail("Vsevolod-s10@mail.ru", "Vsevolod-s10@mail.ru","Тема","Текст письма","C:\test.txt","Vsevolod-s10","7391852s", "charset=windows-1251")
EndIf

Но при этом места письма приходит какаято ирунда с отрывками моего письма

0

42

Странно, у меня текст и тема нормально отображается на русском.

Код:
MySMTPServer.s = "smtp.mail.ru"
MySMTPPort.l = 25 ;587
If PureSMTP_OpenSMTPConnection(MySMTPServer, MySMTPPort) = #PureSMTP_Ok
  PureSMTP_SetContentType("text/html; charset=windows-1251")
  Status.l = PureSMTP_SendMail("Vsevolod-s10@mail.ru", "Vsevolod-s10@mail.ru","Тема","Текст письма","","Vsevolod-s10","7391852s", "Content-Type: text/html; charset=windows-1251")
  Debug Status
  Debug PureSMTP_GetLastServerMessage()
EndIf

0

43

О, спасибо, ваш пример работает. Я просто подставлял не "Content-Type: text/html; charset=windows-125", а "7391852s", "charset=windows-1251". :cool:

0

44

Здравствуйте, хочу написать программу, которая может просматривать почту на ящике и смотреть есть ли там непрочитанные письма. Вот как можно отследить что в ящике есть непрочитанные письма?

1. для Outlook
2. для ящика gmail.com, или mail.ru

0

45

В простейшем случае:

Код:
Server.s = "my.server.de"
Port.l = 110
User.s = "gnozal"
Pwd.s = "mypass"
;
If PurePOP3_OpenPOP3Connection(Server, Port, User, Pwd) = #PurePOP3_Ok
   Debug "Connected"
   ; PurePOP3_Trace(#TRUE)
   Messages = PurePOP3_CountMessages()
   Debug "В ящике " + Str(Messages) + " писем"
   PurePOP3_ClosePOP3Connection()
Else
   Debug PurePOP3_GetLastServerMessage()
EndIf

Этот код узнает сколько есть писем в папке "Входящие".
Если регулярно проверять количество писем и сравнивать с предыдущим результатом, то можно обнаружить появление новых писем.

0

46

Отправка письма функциями PB.
Нужна версия PureBasic не ниже 5.10.

Код:
InitNetwork() 

 If CreateMail(0, "Vsevolod-s10@mail.ru", "Hello !") 

   SetMailBody(0, "Hello !" + #CRLF$ + 
                  "This is a multi-" + #CRLF$ + 
                  "line mail !") 
   AddMailRecipient(0, "Vsevolod-s10@mail.ru", #PB_Mail_To) 
   
   Result = SendMail(0, "smtp.mail.ru", 587, 0, "Vsevolod-s10", "7391852s") 
   
   If Progress = #PB_Mail_Finished 
     MessageRequester("Information", "Mail correctly sent !") 
   Else 
     MessageRequester("Error", "Can't sent the mail !") 
   EndIf 
   FreeMail(0)
 EndIf

Список функций и их описание. http://purebasic.com/documentation/mail/index.html
На русском. http://purebasic.ru/manual.php?id=693&lng=rus

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Работа с почтой