- Codice: Seleziona tutto
Sub Invia_Email()
Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String
Dim fs, f
Foglio1.Select
Set OutApp = CreateObject("Outlook.Application")
OutApp.Quit
Set OutApp = Nothing
Application.Wait (Now + TimeValue("0:00:05"))
RR = Range("B" & Rows.Count).End(xlUp).Row ' I dati iniziano dalla seconda riga
For I = 2 To RR
Perc = Cells(I, 6).Value
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.getfolder(Perc)
Set NFile = f.Files
NomeF = Cells(I, 7).Value
NomeP = Replace(NomeF, ".png", "")
LNome = Len(NomeP)
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
' La colonna "B" contiene gli indirizzi e-mail dei vari destinatari
.To = Cells(I, 2)
' La colonna "C" contiene l'indirizzo e-mail in "Copia per Conoscenza"
.CC = Cells(I, 3)
' Eventuale e-mail in "Copia per conoscenza nascosta"
.BCC = ""
' La colonna "D" contiene l'oggetto della e-mail
.Subject = Cells(I, 4)
' La colonna "E" contiene l testo della e-mail
.Body = Cells(I, 5)
' La colonna "F" contiene il percorso ove si trova il file da allegare
' La colonna "G" contiene il nome del file da allegare
For Each Pf1 In NFile
If Pf1.Name = "" Then Exit Sub
If Mid(Pf1.Name, 1, LNome) = NomeP And Mid(Pf1.Name, Len(Pf1.Name) - 3, 4) = ".png" Then
.Attachments.Add (Perc & Pf1.Name)
End If
Next
.Send
MsgBox ("Mail inviata")
Application.Wait (Now + TimeValue("0:00:02"))
End With
Set fs = Nothing
Set f = Nothing
Set NFile = Nothing
Set OutMail = Nothing
Set OutApp = Nothing
Application.Wait (Now + TimeValue("0:00:03"))
Next I
MsgBox ("Invio completato")
End Sub
posso inviare un email con un allegato png od altro tipo, basta specificarlo nel modulo.
Vorrei poter allegare due file, il png ed anche un altro file pdf.
Il solito foglio con nella colonna B gli indirizzi, nella D l'oggetto, nella E il messaggio, nella F il percorso del file e nella G il file.
Soluzione? Inutile dirVi che ci sto provando da stamattina.
Seconda domanda: so bene che sconsigliate nel modo più assoluto di usare CDO per spedire emails, però l'ho usato spessissimo senza mai avere "conseguenze", anche perchè uso soltanto webmail sia per ricevere che spedire e la macro soprastante funziona solo con Outlook. Il problema del messaggio "errore 429 bla. bla." è sorto da quando ho reinstallato Windows poichè aveva iniziato a sbarellare. Cosa può aver causato il problema?
Sempre grazie per il tempo dedicatomi.
Cordiali saluti
Ricky