Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как автоматически отправить eMail на заданный адрес

Ответить
Настройки темы
Как автоматически отправить eMail на заданный адрес

Новый участник


Сообщения: 38
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как автоматически отправить eMail на заданный адрес по форуму примеров не нашел подскажите пожалуйста?
Мне нужно чтобы мой рабочий ком автоматически высылал письмо с прикрепленным текстовым файлом на мой адрес, Имею права Администратора на компе с которого необходимо отправлять eMail
на компе не усстановлено почтовых программ можно ли ка то это реализовать.

Отправлено: 17:28, 27-08-2009

 

Аватара для Belfigor

Пользователь


Сообщения: 87
Благодарности: 11

Профиль | Отправить PM | Цитировать


Можно реализовать через браузер

Отправлено: 17:43, 27-08-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Вот: Ссылка. Смотри там мой пост с кодом. Где написать адрес и т.п. думаю догадаешся.

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Отправлено: 18:05, 27-08-2009 | #3


Новый участник


Сообщения: 38
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ни чего не понял

Отправлено: 18:08, 27-08-2009 | #4


Новый участник


Сообщения: 38
Благодарности: 0

Профиль | Отправить PM | Цитировать


Пробовал чтото не выходит с англискм плохо можно по подробней
; Include
;##################################
#Include<file.au3>
;##################################
; Variables
;##################################
$SmtpServer = "Что сдесь SmtpServer на котором зарегестрирована моя почта? " ; address for the smtp-server to use - REQUIRED
$FromName = "Что сдесь" ; name from who the email was sent
$FromAddress = "Что сдесь" ; address from where the mail should come
$ToAddress = "Что сдесь";"()@sms.kyivstar.net" ; destination address of the email - REQUIRED
$Subject = "Проба" ; subject from the email - can be anything you want it to be
$Body = "Привет" ; the messagebody from the mail - can be left blank but then you get a blank mail
$AttachFiles = "Писать Полный путь или нет" ; файлы которые нужно присоединить к письму) the file you want to attach- leave blank if not needed
$CcAddress = "Что сдесь" ; address for cc - leave blank if not needed
$BccAddress = "Что сдесь" ; address for bcc - leave blank if not needed
$Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
$Username = "Что сдесь" ; username for the account used from where the mail gets sent - REQUIRED
$Password = "Пароль на почтовый ящик или нет" ; password for the account used from where the mail gets sent - REQUIRED
$IPPort = 25 ; port used for sending the mail
$ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS
;~ $IPPort=465 ; GMAIL port used for sending the mail
;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS

;##################################
; Script
;##################################

Отправлено: 18:27, 27-08-2009 | #5


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата Vagac:
можно по подробней »
читать дальше »
Код: Выделить весь код
; Include
;##################################
#Include<file.au3>
;##################################
; Variables
;##################################
$SmtpServer = "smtp.mail.ru" ; адрес smtp-сервера вашей ел. почты
$FromName = "Drug" ; ваше имя
$FromAddress = "нужно заполнить" ; адрес ел. почты отправителя
$ToAddress = "нужно заполнить" ; адрес ел. почты получателя
$Subject = "тема сообщения" ; темя сообщения
$Body = "How are you?" ; текст сообщения
$AttachFiles = "1.bmp" ; файлы которые нужно присоединить к письму, если файлов несколько то следует разделять их точкой с запятой
$CcAddress = "" ; address for cc - leave blank if not needed
$BccAddress = "" ; address for bcc - leave blank if not needed
$Importance = "High" ; Send message priority: "High", "Normal", "Low"
$Username = "нужно заполнить" ; адрес ел. почты отправителя
$Password = "нужно заполнить" ; пароль к ел. почте отправителя
$IPPort = 25 ; port used for sending the mail
$ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS
;~ $IPPort=465 ; GMAIL port used for sending the mail
;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS

;##################################
; Script
;##################################
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
If @error Then
MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
EndIf
;
; The UDF
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)
Local $objEmail = ObjCreate("CDO.Message")
$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($as_Body, "<") And StringInStr($as_Body, ">") Then
$objEmail.HTMLBody = $as_Body
Else
$objEmail.Textbody = $as_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])
ConsoleWrite('@@ Debug(62) : $S_Files2Attach = ' & $S_Files2Attach & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
If FileExists($S_Files2Attach[$x]) Then
$objEmail.AddAttachment ($S_Files2Attach[$x])
Else
ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
SetError(1)
Return 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
If Number($IPPort) = 0 then $IPPort = 25
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
;Authenticated SMTP
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
;Update settings
$objEmail.Configuration.Fields.Update
; Set Email Importance
Switch $s_Importance
Case "High"
$objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"
Case "Normal"
$objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"
Case "Low"
$objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low"
EndSwitch
;$objEmail.Fields.Item ("urn:schemas:mailheader:content-type") = "text/plain; charset=UTF-8"
$objEmail.Fields.Update
; Sent the Message
$objEmail.Send
If @error Then
SetError(2)
Return $oMyRet[1]
EndIf
$objEmail=""
EndFunc ;==>_INetSmtpMailCom
;
;
; Com Error Handler
Func MyErrFunc()
$HexNumber = Hex($oMyError.number, 8)
$oMyRet[0] = $HexNumber
$oMyRet[1] = StringStripWS($oMyError.description, 3)
ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
SetError(1); something to check for when this function returns
Return
EndFunc ;==>MyErrFunc

В этом коде есть одно но, если в письме пишеться текст, тот его нужно писать только английскими буквами, тогда дойдет и текст сообщения и прикрепленные файлы.
Если же нужно отправить письмо с текстом на русском языке, без вложений, то нужно перед строкой: ;$objEmail.Fields.Item ("urn:schemas:mailheader:content-type") = "text/plain; charset=UTF-8", которая в скрипте, убрать точку с запятой.

P.S. Советую открыть тебе ящик на mail.ru или ее доменах, тогда будет проще, все что нужно поменять, указано (ибо на gmail немного сложнее).
И еще одно. Путь к вложенным файлам не должен содержать русских букв (или переделуй сам это...)

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Последний раз редактировалось beve, 27-08-2009 в 20:45.


Отправлено: 20:23, 27-08-2009 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Vagac, если Вы верно пишете, что:
Цитата:
на компе не усстановлено почтовых программ…
и нет установленного MS Office (или он 2007 версии), то к коду коллеги beve возможно потребуется установка библиотеки Collaboration Data Objects.

читать дальше »
Если Вас устроит отсылка файла «как есть» (не «прикрепляя»), Вы также можете попробовать функцию «_INetSmtpMail()» (v.3.1.1.97+) из входящей в поставку UDF «Inet.au3»; она реализует непосредственную работу с почтовым сервером по SMTP-протоколу.

Отправлено: 20:51, 27-08-2009 | #7


Новый участник


Сообщения: 17
Благодарности: 1

Профиль | Отправить PM | Цитировать


Vagas, посмотрите вот тут
http://www.autoitscript.com/forum/in...pic=23860&st=0
Аутлука не надо, прикрутить к этому автомат на AutoIt-е совсем не трудно.
Нужно минимальное знание английского и зарегистрированный ящик

Отправлено: 22:14, 28-08-2009 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


abb269, это и есть работа через CDO/Outlook/Exchange Client:
Код: Выделить весь код
Local $objEmail = ObjCreate("CDO.Message")
Не имея установленного MS Office, клиента Exchange или хотя бы ручками установленной библиотеки Collaboration Data Objects — письмо таким способом не отправишь.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:08, 28-08-2009 | #9


Новый участник


Сообщения: 17
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, спасибо за информацию.
Я наивно полагал, что нужен только комп.

Отправлено: 22:16, 30-08-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как автоматически отправить eMail на заданный адрес

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как получить IP-адрес, зная адрес сайта malev AutoIt 2 09-02-2010 20:04
DNS/DHCP - получить адрес dns сервера автоматически средствами DHCP dj_jackson Сетевые технологии 5 12-10-2009 15:05
Доступ - IP-адрес не назначается автоматически a715 Microsoft Windows 2000/XP 9 23-03-2009 10:33
Как сделать отправку файлов по email через контекстное меню? MzM NF Программное обеспечение Windows 0 19-09-2007 00:50




 
Переход