Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Почта + Файл -КАК??? Добавлено: 08.01.06 11:11  

Автор вопроса:  KEP
Парни! Кто знает мне нужно из моей программы создовать стандартный шаблон с вложенным в него Текстовым файлом.

Тема: Обновление
Кому: xxx@mail.ru

Текст "Обновление 7 фнваря 2006 года"

и плюс вложить текстовик C:\tools\Диски.txt


Call ShellExecute(0&, "Open", "mailto:" + "wishco@yandex.ru" + "?Subject=" + "'Здесь описана тема...'", "", "", SW_SHOWNORMAL)

Открывается The bat. Но как туды еще добавить текстовик
чтобы пользователю оставалось только нажать на кнопочку отправить????

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #1 Добавлено: 08.01.06 15:31
Тема закрыта!!!!


Разобрался

Private Enum SMTP_State
    MAIL_CONNECT
    MAIL_HELO
    MAIL_FROM
    MAIL_RCPTTO
    MAIL_DATA
    MAIL_DOT
    MAIL_QUIT
End Enum

Private m_State As SMTP_State
Private m_strEncodedFiles As String
'

Private Sub cmdAddFile_Click()
    
    With ComDialog
        .ShowOpen
        If Len(.FileName) > 0 Then
            lstAttachments.AddItem .FileName
        End If
    End With

End Sub

Private Sub cmdClose_Click()

    Unload Me
    
End Sub

Private Sub cmdNew_Click()

    txtRecipient = ""
    txtSubject = ""
    txtMessage = ""
    
End Sub

Private Sub cmdRemove_Click()

    On Error Resume Next
    
    lstAttachments.RemoveItem lstAttachments.ListIndex

End Sub

Private Sub cmdSend_Click()
    '
    ;Dim i As Integer
    '
    'prepare attachments
    '
    For i = 0 To lstAttachments.ListCount - 1
        lstAttachments.ListIndex = i
        m_strEncodedFiles = m_strEncodedFiles & _
                         UUEncodeFile(lstAttachments.Text) & vbCrLf
    Next i
    '
    Winsock1.Connect Trim$(txtHost), 25
    m_State = MAIL_CONNECT
    '
End Sub

Private Sub Form_Load()
    '

    '
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set m_colAttachments = Nothing
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

    ;Dim strServerResponse As String
    ;Dim strResponseCode As String
    ;Dim strDataToSend As String
    '
    'Retrive data from winsock buffer
    '
    Winsock1.GetData strServerResponse
    '
    ;Debug.Print strServerResponse
    '
    'Get server response code (first three symbols)
    '
    strResponseCode = Left(strServerResponse, 3)
    '
    'Only these three codes tell us that previous
    'command accepted successfully and we can go on
    '
    If strResponseCode = "250" Or _
       strResponseCode = "220" Or _
       strResponseCode = "354" Then
       
        Select Case m_State
            Case MAIL_CONNECT
                'Change current state of the session
                m_State = MAIL_HELO
                '
                'Remove blank spaces
                strDataToSend = Trim$(txtSender)
                '
                'Retrieve mailbox name from e-mail address
                strDataToSend = Left$(strDataToSend, _
                                InStr(1, strDataToSend, "@";) - 1)
                'Send HELO command to the server
                Winsock1.SendData "HELO " & strDataToSend & vbCrLf
                '
                ;Debug.Print "HELO " & strDataToSend
                '
            Case MAIL_HELO
                '
                'Change current state of the session
                m_State = MAIL_FROM
                '
                'Send MAIL FROM command to the server
                Winsock1.SendData "MAIL FROM:" & Trim$(txtSender) & vbCrLf
                '
                ;Debug.Print "MAIL FROM:" & Trim$(txtSender)
                '
            Case MAIL_FROM
                '
                'Change current state of the session
                m_State = MAIL_RCPTTO
                '
                'Send RCPT TO command to the server
                Winsock1.SendData "RCPT TO:" & Trim$(txtRecipient) & vbCrLf
                '
                ;Debug.Print "RCPT TO:" & Trim$(txtRecipient)
                '
            Case MAIL_RCPTTO
                '
                'Change current state of the session
                m_State = MAIL_DATA
                '
                'Send DATA command to the server
                Winsock1.SendData ";DATA" & vbCrLf
                '
                ;Debug.Print ";DATA"
                '
            Case MAIL_DATA
                '
                'Change current state of the session
                m_State = MAIL_DOT
                '
                'So now we are sending a message body
                'Each line of text must be completed with
                'linefeed symbol (Chr$(10) or vbLf) not with vbCrLf
                '
                'Send Subject line
                Winsock1.SendData "Subject:" & txtSubject & vbLf & vbCrLf
                '
                ;Debug.Print "Subject:" & txtSubject
                '
                ;Dim varLines As Variant
                ;Dim varLine As Variant
                ;Dim strMessage As String
                '
                'Add atacchments
                strMessage = txtMessage & vbCrLf & vbCrLf & m_strEncodedFiles
                'clear memory
                m_strEncodedFiles = ""
                'Parse message to get lines (for VB6 only)
                varLines = Split(strMessage, vbCrLf)
                'clear memory
                strMessage = ""
                '
                'Send each line of the message
                For Each varLine In varLines
                    Winsock1.SendData CStr(varLine) & vbLf
                    '
                    ;Debug.Print CStr(varLine)
                Next
                '
                'Send a dot symbol to inform server
                'that sending of message comleted
                Winsock1.SendData "." & vbCrLf
                '
                ;Debug.Print "."
                '
            Case MAIL_DOT
                'Change current state of the session
                m_State = MAIL_QUIT
                '
                'Send QUIT command to the server
                Winsock1.SendData "QUIT" & vbCrLf
                '
                ;Debug.Print "QUIT"
            Case MAIL_QUIT
                '
                'Close connection
                Winsock1.Close
                '
        End Select
       
    Else
        '
        'If we are here server replied with
        'unacceptable respose code therefore we need
        'close connection and inform user about problem
        '
        Winsock1.Close
        '
        If Not m_State = MAIL_QUIT Then
            MsgBox "SMTP Error: " & strServerResponse, _
                    vbInformation, "SMTP Error"
        Else
            MsgBox "Message sent successfuly.", vbInformation
        End If
        '
    End If
    
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

    MsgBox "Winsock Error number " & Number & vbCrLf & _
            ;Description, vbExclamation, "Winsock Error"

End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #2
Добавлено: 08.01.06 21:08
А это разве не ручное отправление почты?
Этот способ плох тем, что, к примеру, я не дам твоей проге вот так вот брать и запросто отсылать почту (в которой могут быть и мои пассы) - такими привелегиями облают лишь определённые проги, которым приходится доверять, т.к. если не им, то кому. Среди них The Bat.
Поэтому, если ты хочешь сделать что-то типа "не отправлять отчёт" в своей программулине, то лучше создавай письмо именно через используемый по умолчанию почтовик - так оно будет корректнее.
Где-то я видел пример, как можно поместить готовый текст в письмо, но только там этого текста могло быть не более 255 символов, кажется.

Ответить

Номер ответа: 3
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #3
Добавлено: 08.01.06 21:08
И аттачи, там тоже, имхо, были - дома посмотрю, если не зубаду.

Ответить

Номер ответа: 4
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #4 Добавлено: 09.01.06 03:06
Буду ждать!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам