Войти

Показать полную графическую версию : _INetSmtpMailCom - Получение письма с иероглифами


TERMINAL
25-07-2011, 16:32
Приветствую всех !
Имеется вырезанный скрипт

#include <ScreenCapture.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <File.au3>
#include <GDIPlus.au3>
#include <INet.au3>
#Include <Crypt.au3>
#Include <WinAPI.au3>

#NoTrayIcon

Opt("TrayIconHide", 1)

$FromAddress = "test@mail.ru" ; адрес ел. почты отправителя
$ToAddress = "test@mail.ru" ; адрес ел. почты получателя
$Username = "test@mail.ru" ; адрес ел. почты отправителя
$Password = "xxxxx" ; пароль к ел. почте отправителя

Global $SmtpServer = "smtp.mail.ru" ; адрес smtp-сервера вашей ел. почты
Global $FromName = "Письмо-тест" ; ваше имя
Global $Subject = "Tecn" ; темя сообщения
Global $Body = "Почтовые настройки настроены верно !"; текст сообщения
Global $AttachFiles = "" ; файлы которые нужно присоединить к письму, если файлов несколько то следует разделять их точкой с запятой
Global $CcAddress = "" ; address for cc - leave blank if not needed
Global $BccAddress = "" ; address for bcc - leave blank if not needed
Global $Importance = "High" ; Send message priority: "High", "Normal", "Low"

Global $IPPort = 25 ; port used for sending the mail
Global $ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

_INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body , $AttachFiles, $CcAddress , $BccAddress, $Username, $Password, $IPPort, $ssl)
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $s_Body , $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl)
Local $objEmail = ObjCreate("CDO.Message")
If Not IsObj($objEmail) Then Return SetError(1, 0, 0)

$objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
$objEmail.To = $s_ToAddress

Local $i_Error = 0
Local $i_Error_desciption = ""

If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress

$objEmail.Subject = $s_Subject

If StringInStr($s_Body, "<") And StringInStr($s_Body, ">") Then
$objEmail.HTMLBody = $s_Body
Else
$objEmail.Textbody = $s_Body & @CRLF
EndIf

If $s_AttachFiles <> "" Then
Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
For $x = 1 To $S_Files2Attach[0]
$S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x])
If FileExists($S_Files2Attach[$x]) Then
$objEmail.AddAttachment($S_Files2Attach[$x])
Else
$i_Error_desciption = $i_Error_desciption & @LF & 'File not found to attach: ' & $S_Files2Attach[$x]
Return SetError(1, 0, 0)
EndIf
Next
EndIf

$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort

If $s_Username <> "" Then
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
EndIf

If $ssl Then
$objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
EndIf

$objEmail.Configuration.Fields.Update
$objEmail.Send

If @error Then Return SetError(2, 0, '')
EndFunc

При получении почты, в некоторых почтовиках, принимается письмо с иероглифами (например, The Bat!). Заранее спс.

Creat0R
25-07-2011, 21:43
При получении почты, в некоторых почтовиках, принимается письмо с иероглифами (например, The Bat!). Заранее спс. »
Заранее пожалуйста.

yukuru
26-07-2011, 00:32
иероглифы при любых соощениях, или только русско язычных?

Creat0R
26-07-2011, 00:47
TERMINAL,
Телепаты уволены.
В чём конкретно вопрос?

TERMINAL
27-07-2011, 12:55
yukuru, только при сообщениях на русском языке, в шапке готовый скрипт (только осталось ввести свои настройки почты), можете проверить у себя.
На Microsoft Office Outlook 2003 такой проблемы нет, а вот в The Bat! version 5 и в Ubunta 10.10 такая проблемы есть, выскакивает что-то типа токого
рПЮФПЧЩЕ ОБУФТПКЛЙ ОБУФТПЕОЩ ЧЕТОП !

оБ ЬФПФ РПЮФПЧЩК СЭЙЛ ВХДХФ РТЙИПДЙФШ УПППВЭЕОЙС ПВ ХУРЕЫОПН ПЛПОЮБОЙЙ ТБВПФЩ
РТПЗТБННЩ (тЕЪЕТЧОПЕ ЛПРЙТПЧБОЙЕ ВБЪЩ ДБООЩИ 1C ЧЕТУЙЙ 7)
ЙМЙ ЦЕ ВХДХФ РТЙИПДЙФШ ПФЮЈФЩ ПВ ПЫЙВЛБИ, ЛПФПТЩЕ ЧПЪОЙЛМЙ РТЙ ТБВПФЕ РТПЗТБННЩ.

yukuru
28-07-2011, 02:40
выставь в Зибате автокодировку....думаю на этот проблема будет исчерпана.
это проблема не отправки видимо а получения.

TERMINAL
28-07-2011, 09:38
yukuru, мне бы хотелось решить это через отправку ! Жду что скажет гуру Creat0R ...
.

Creat0R
28-07-2011, 14:34
мне бы хотелось решить это через отправку »
Можно попробовать кодировать строку в UTF перед отправкой:

Global $Body = BinaryToString(StringToBinary("Почтовые настройки настроены верно !", 4))

madmasles
28-07-2011, 21:43
Можно попробовать кодировать строку в UTF перед отправкой »Кракозябры - KOI8, поможет ли?

Creat0R
29-07-2011, 01:14
Кракозябры - KOI8 »
Это не KOI, это UTF-8.

поможет ли? »
Если бы я знал точно, то не писал бы...
Можно попробовать »
;)

madmasles
29-07-2011, 07:29
Это не KOI, это UTF-8. »Почему?
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <Encoding.au3>

$sString = 'рПЮФПЧЩЕ ОБУФТПКЛЙ ОБУФТПЕОЩ ЧЕТОП !' & _
' оБ ЬФПФ РПЮФПЧЩК СЭЙЛ ВХДХФ РТЙИПДЙФШ УПППВЭЕОЙС ПВ ХУРЕЫОПН ПЛПОЮБОЙЙ ТБВПФЩ' & _
' РТПЗТБННЩ (тЕЪЕТЧОПЕ ЛПРЙТПЧБОЙЕ ВБЪЩ ДБООЩИ 1C ЧЕТУЙЙ 7)' & _
' ЙМЙ ЦЕ ВХДХФ РТЙИПДЙФШ ПФЮЈФЩ ПВ ПЫЙВЛБИ, ЛПФПТЩЕ ЧПЪОЙЛМЙ РТЙ ТБВПФЕ РТПЗТБННЩ.'

MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(0, 'UTF8', _Encoding_UTF8ToANSI($sString))
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(0, 'KOI8', _Encoding_KOI8To1251($sString))
Encoding.au3 (http://autoit-script.ru/index.php/topic,510.0.html)

TERMINAL
29-07-2011, 12:31
madmasles, это же у тебя просто пример расшифровки...Я отсылаю тело письма Почтовые настройки настроены верно !, а мне приходит рПЮФПЧЩЕ ОБУФТПКЛЙ ОБУФТПЕОЩ ЧЕТОП ! вот в чем проблемка.
Creat0R, твой вариант не подошёл, а жаль.

TERMINAL
01-08-2011, 12:51
madmasles, Creat0R, неподскажете почему иногда письма не приходят?




© OSzone.net 2001-2012