PDA

View Full Version : [VB6] Errore in un prog per inviare e-mail


robnet77
20-04-2004, 14:53
Allora, ho questo problema:

il programma di un mio collega funziona nei pc con installato Visual Basic ma non va su un pc con win95 che non ha vb installato.
Il messaggio di errore č tipo: "Error 458 - Variable uses an automation type not supported in Visual Basic".


Il programma č il seguente (ancora da affinare nella forma :) ) :

Public Riga As String
Public campo1 As String
Public campo2 As String
Public swErrDest As String
Public swErrAlleg As String
Public swErrOggetto As Integer
Public swErrTesto As Integer
Dim mymail As Object
Dim myOutlook As New Outlook.Application

Sub Main()
' Dim mymail As Outlook.mailitem
' Set myOutlook = New Outlook.Application
Set mymail = myOutlook.CreateItem(olMailItem)

Open "C:\DatiMail.txt" For Input As 1
If Not EOF(1) Then
While Not EOF(1)
Line Input #1, Riga
Call LeggiCampi
'Oggetto
If campo1 = "OGGETTO" Then
swErrOggetto = swErrOggetto + 1
mymail.Subject = campo2
End If
'Testo mail
If campo1 = "TESTO" Then
swErrTesto = swErrTesto + 1
mymail.Body = campo2
End If
'Allegati
If campo1 = "ALLEGATO" Then
swErrAlleg = "*"
mymail.Attachments.Add (campo2)
End If
'Destinatari
If campo1 = "DESTINATARIO" Then
swErrDest = "*"
mymail.Recipients.Add (campo2)
End If

Wend
End If
Close 1

If swErrDest <> "*" Then
MsgBox "Attenzione!! Non Inserito Nessun Destinatario"
ElseIf swErrAlleg <> "*" Then
MsgBox "Attenzione!! Non Inserito Nessun Allegato"
ElseIf swErrOggetto > 1 Then
MsgBox "Attenzione!! Inserito piu' di 1 Oggetto "
ElseIf swErrTesto > 1 Then
MsgBox "Attenzione!! Inserito piu' di 1 Testo "
Else
'Invio E-Mail
mymail.Send
End If

End Sub

Sub LeggiCampi()
Dim PosTab As Integer
Dim NumCampoLetto As Integer

PosTab = InStr(Riga, vbTab)
NumCampoLetto = 1
While PosTab > 0
Select Case NumCampoLetto
Case 1
campo1 = Mid$(Riga, 1, PosTab - 1)
' Case 2
' campo2 = Mid$(Riga, 1, PosTab - 1)

End Select
NumCampoLetto = NumCampoLetto + 1
Riga = Mid$(Riga, PosTab + 1)
PosTab = InStr(Riga, vbTab)
Wend
' Lettura ultimo campo
campo2 = Riga

End Sub



la sub leggicampi serve solo a leggere da un file di testo gli elementi corretti, nel progetto č ovviamente referenziata la libreria oggetto di Microsoft Outlook 9.0.
Ha il service pack 5 installato, non credo sia necessario il 6 per fixare il problema :p


... grazie :)

robnet77
21-04-2004, 12:30
nessuno sa trovare l'errore? :confused:

matpez
21-04-2004, 12:54
Io per fare un programma che inviava email avevo preso come esempio un progettino che nn usava nessun controllo, ma lavorava solo con il socket, cosė nn eri limitato dalle varie librerie installate su altre macchine!

robnet77
21-04-2004, 13:06
Originariamente inviato da matpez
Io per fare un programma che inviava email avevo preso come esempio un progettino che nn usava nessun controllo, ma lavorava solo con il socket, cosė nn eri limitato dalle varie librerie installate su altre macchine!

il fatto č che in azienda abbiamo Outlook ovunque e un programma come questo si fa in pochissimo tempo.
Se puoi inviarmi il programma che hai fatto magari mi farebbe comodo, anche se in genere non faccio programmi di questo tipo, grazie :)

matpez
21-04-2004, 13:11
Ti mando il codice da dove hao preso lo spunto io! :p

robnet77
21-04-2004, 16:03
Originariamente inviato da matpez
Ti mando il codice da dove hao preso lo spunto io! :p


grazie, resta sottinteso che se qualcuno mi sapesse trovare l'errore, sarebbe cosa gradita... :)

robnet77
22-04-2004, 14:25
up :)