Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 3)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

JekG

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
Sub SendMail()    ' Отправка отчета по почте
    txt = "Здравствуйте, Ольга!" & vbNewLine & _
       
    If Send_Mail("XXX@gmail.com", "YYY@mail.ua", "Отчет СКД", txt) Then
        MsgBox "Письмо успешно отправлено", vbInformation
    Else
        MsgBox "Не удалось отправить письмо", vbExclamation
    End If
     
    If Err.Number = 0 Then ' если операция отправки не вызвала ошибок - предполагаю, что где-то раньше встречается конструкция On Error Resume Next или подобный обработчик
     Open ThisWorkbook.Path & "\log_report.txt" For Append As #1
     Print #1, "Файл " & Filename & " успешно отправлен " & Now()
    End If
 
End Sub
 
Function Send_Mail(ByVal MailTo As String, ByVal MailFrom As String, _
                   ByVal MailSubject As String, ByVal MailText As String, _
                   Optional ByVal MailAttachment As String = "") As Boolean
    ' функция для отправки почты без использования внешних почтовых программ
    ' ----------------------------------------------------------------------
    ' в качестве параметров получает:
    ' MailTo - адрес получателя письма
    ' MailFrom - адрес отправителя письма
    ' MailSubject - тема письма
    ' MailText - текст письма
    ' MailAttachment - полный путь к файлу вложения (необязательный параметр)
    ' ----------------------------------------------------------------------
    ' возвращает TRUE, если отправка почты произошла успешно, и FALSE в обратном случае
 
    Dim TempFilePath As String
    TempFilePath = "C:\Windows\Temp\" & ActiveWorkbook.Name & ".xls"
    ActiveWorkbook.SaveCopyAs (TempFilePath)
     
    Const cdoConfigURL = "http://schemas.microsoft.com/cdo/configuration/"
    On Error Resume Next: Err.Clear
 
    smtpserver = GetSetting(Application.Name, "mail", "smtpserver", "")
    sendusername = GetSetting(Application.Name, "mail", "sendusername", "")
    sendpassword = GetSetting(Application.Name, "mail", "sendpassword", "")
    If Len(smtpserver) = 0 Or Len(sendusername) = 0 Or Len(sendpassword) = 0 Then Exit Function
 
    Set cdoConfig = CreateObject("CDO.Configuration")
    With cdoConfig.Fields
        .Item(cdoConfigURL & "sendusing") = 2
        .Item(cdoConfigURL & "smtpauthenticate") = 1
        .Item(cdoConfigURL & "smtpserver") = smtpserver
        .Item(cdoConfigURL & "sendusername") = sendusername
        .Item(cdoConfigURL & "sendpassword") = sendpassword
        .Update
    End With
 
    Set cdoMessage = CreateObject("CDO.Message")
    With cdoMessage
        Set .Configuration = cdoConfig
        .BodyPart.Charset = "koi8-r"
        .From = MailFrom:
        .To = MailTo
        .Subject = MailSubject
        .TextBody = MailText
        .AddAttachment TempFilePath
        .Send
    End With
    Set cdoMessage = Nothing: Set cdoConfig = Nothing
 'Check that file exists
If Len(Dir$(TempFilePath)) > 0 Then
    'First remove readonly attribute, if set
    SetAttr TempFilePath, vbNormal
    'Then delete the file
     Kill TempFilePath
End If
 
    '    If Err.Number = -2147220973 Then MsgBox ("Отсутствует связь с интернетом")
    '    If Err.Number = -2147220975 Then MsgBox ("SMTP сервер ответил отказом")
    '    If Err.Number = 0 Then MsgBox ("Письмо отправлено")
    Send_Mail = Err = 0
End Function
 
 

Всего записей: 2695 | Зарегистр. 12-10-2005 | Отправлено: 11:10 10-12-2010 | Исправлено: JekG, 11:19 10-12-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 3)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru