Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

invio email

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

invio email

Postdi mirmidone21 » 04/03/16 12:24

buongiorno a tutti
devo inviare delle mail ad un elenco che ho posizionato in A2 fino A2851 senza allegati o altro, semplicemete inviare con un testo prestabilito.
ho pensato di usare una macro di Anthony http://www.pc-facile.com/forum/viewtopic.php?f=26&t=83835&start=20#p479791, ma si blocca sul primo nominativo e non prosegue con gli altri.
poichè non mi servono nè allegati, nè immagini, mi dite anche quali sono le righe della macro che posso eliminare?
sicuramente ho fatto qualche errore.

la macro di Anthony è questa:
Codice: Seleziona tutto
Sub Invioemail()
Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String
'  (a)
Set OutApp = CreateObject("Outlook.Application")
''compilazione di un testo standard di accompagnamento
BDT = "Ti invio il risultato Portfolio per l'orientamento."
BDT = BDT & vbCrLf & "Cordiali saluti" & vbCrLf
BDT = BDT & "Rea"
''  (b)
Nominat = Sheets("Scheda").Range("C5").Value
OutFile = "C:\ESITI\" & Nominat & "_ScrSh.jpg"
EmailAddr = Range("h5").Value
Subj = "Invio risultati questionario"
'
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = EmailAddr
.CC = ""
.BCC = ""
.Subject = Subj
.Attachments.Add OutFile
.Body = BDT
.Display 'or use .send
'.send
End With
'  (c)
Set OutMail = Nothing
'
'  (d)
Set OutApp = Nothing

    Application.Wait (Now + TimeValue("0:00:04"))
    Application.SendKeys "%a"
    Application.Wait (Now + TimeValue("0:00:04"))
'
'Rename Image files
'Name "C:\ESITI\" & Nominat & "_ScrSh.jpg" As "C:\ESITITX\ " & Nominat & "_ScrSh.jpg"

End Sub
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 124
Iscritto il: 26/10/15 16:48

Sponsor
 

Re: invio email

Postdi ricky53 » 04/03/16 15:11

Ciao,
per la questione degli allegati togli la seguente istruzione
Codice: Seleziona tutto
        .Attachments.Add OutFile

di conseguenza anche le seguenti vanno tolte
Codice: Seleziona tutto
    Nominat = Sheets("Scheda").Range("C5").Value
    OutFile = "C:\ESITI\" & Nominat & "_ScrSh.jpg"



SI BLOCCA ...
Cosa ottieni?
Errore?
Che tipo?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: invio email

Postdi mirmidone21 » 04/03/16 15:43

si ferma su outlook ed aspetta che invii la mail, ma anche se la invio manualmente, dopo non passa al nominativo successivo che si trova in h6, e così via
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 124
Iscritto il: 26/10/15 16:48

Re: invio email

Postdi ricky53 » 04/03/16 15:48

Ciao,
il codice che hai riportato effettua un solo invio.
Devi essere tu a modificarlo in modo che cicli su tutti i tuoi indirizzi.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: invio email

Postdi mirmidone21 » 04/03/16 16:12

infatti avevo immaginato che era questo il problema, ma non so come passargli l'istruzione che operi il ciclo.
sono ignorante in merito, cerco di imparare qualcosa su questo forum, ma con molta difficoltà
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 124
Iscritto il: 26/10/15 16:48

Re: invio email

Postdi ricky53 » 04/03/16 16:27

Ciao,
il tuo intervallo di indirizzi è A2 fino A2851
Sono tanti indirizzi e, comunque, una volta inserito il ciclo (ti posso inviare il codice per farlo "ciclare") tu dovrai fare l'invio manuale ogni volta dal software di posta elettronica?

Hai tolto .Dispaly ed inserito .Send ?

Io se vuoi poso scriverti il codice per ciclare ... fammi sapere
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: invio email

Postdi mirmidone21 » 04/03/16 16:30

mandami il codice gentilmente, per l'invio automatico ho già provveduto a cambiare l'istruzione da DISPLAY a SEND
Codice: Seleziona tutto
.Display 'or use .send
'.send
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 124
Iscritto il: 26/10/15 16:48

Re: invio email

Postdi ricky53 » 04/03/16 16:42

Ciao,
eccolo
Codice: Seleziona tutto
Option Explicit

Sub Invio_Email()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim EmailAddr As String
    Dim Subj As String
    Dim BDT As String
    Dim UR As Integer, I As Integer
    UR = Sheets("Foglio1").Range("A2").End(xlDown).Row
   
    Set OutApp = CreateObject("Outlook.Application")
   
    BDT = "Ti invio il risultato Portfolio per l'orientamento."
    BDT = BDT & vbCrLf & "Cordiali saluti" & vbCrLf
    BDT = BDT & "Rea"
   
    For I = 2 To UR
        EmailAddr = Range("A" & I).Value
        Subj = "Invio risultati questionario"
        Set OutMail = OutApp.CreateItem(0)
        With OutMail
            .to = EmailAddr
            .CC = ""
            .BCC = ""
            .Subject = Subj
            .Body = BDT
'            .Display 'or use .Send
            .Send
        End With

        Application.Wait (Now + TimeValue("0:00:04")) ' <<==== Vedi se 4 secondi possono essere portati a 1
        Application.SendKeys "%a"
        Application.Wait (Now + TimeValue("0:00:04")) ' <<==== Vedi se 4 secondi possono essere portati a 1
    Next I
   
    MsgBox "Effettuato invio di  " & UR - 1 & "  e-mail ", vbInformation
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub


Non l'ho testato ma ... dovrebbe andare bene

il Wait di "4" secondi allunga i tempi prova con 2 e poi con 1 !

8 x 2850 = 22.800 secondi poco più di SEI ore ... contro quasi 2 con 1 secondo

Attenzione: oltre tutto è invio massivo di e-mail !
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: invio email

Postdi mirmidone21 » 04/03/16 19:37

ti ringrazio, appena ritorno in ufficio provo.
per quanto riguarda l'invio massivo, tranquillo che è per lavoro, non sicuramente per spammare.
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 124
Iscritto il: 26/10/15 16:48

Re: invio email

Postdi ricky53 » 05/03/16 01:36

Ciao,
proprio perché è per lavoro potrebbero esserci, nel vostro sistema, dei controlli sull'invio di numerose e-mail.

Aggiornaci.
Buon fine settimana
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: invio email

Postdi Anthony47 » 05/03/16 02:13

Visto che hai Outlook 2013 alcune istruzioni sono dannose (SendKeys) mentre le Application.Wait possono essere accorciate; propongo quindi di eliminare le due righe marcate ''' in testa e di ridurre subito a 2 secondi la Wait residua, come segue:
Codice: Seleziona tutto
            .Subject = Subj
            .Body = BDT
'            .Display 'or use .Send
            .Send
        End With

'''        Application.Wait (Now + TimeValue("0:00:04")) ' <<==== Vedi se 4 secondi possono essere portati a 1
'''        Application.SendKeys "%a"
        Application.Wait (Now + TimeValue("0:00:02")) ' <<==== Vedi se 4 secondi possono essere portati a 1
    Next I
'Etc etc


Anche io ho il dubbio di come si comportera' il server di posta: secondo me quando si vede arrivare questa orda di email fermera' altre accettazioni e non so come questo si ripercuotera' sul processo in corso; il dubbio e' se (in caso di blocco di accettazione del server) le mail passeranno regolarmente nel folder Mail In Uscita (dove rimarranno non inviate) o se questo si ripercuote a catena all'indietro anche sul trasferimento in Mail in Uscita, nel qual caso non basterebbe ricorrere a una Wait per stare tranquilli.
Quindi il mio suggerimento e' che provi con 500 email (abbastanza per vedere se il server si insospettisce) tutte verso un tuo indirizzo. Solo se tutte e 500 vengono inviate correttamente e altrettanto correttamente vengono TUTTE ricevute allora puoi passare a lavorare con i destinatari reali. Nel caso che la vostra azienda utilizzi un server Exchange allora tieni presente che le 500 email di cui ho parlato devono essere esterne.

Ciao

PS: bentornato sulla breccia, Ricky
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: invio email

Postdi ricky53 » 05/03/16 09:44

Ciao,
nella mia azienda esiste il controllo per gli invii massivi, per questo motivo avevo posto la questione che Anthony ha approfondito e proposto una soluzione.






Anthony: grazie per il bentornato
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: invio email

Postdi mirmidone21 » 05/03/16 13:45

ok lunedi provo la mdifica e provo anche ad inviare blocchi di 500 al mio indirizzo.
l'azienda usa un server exchange.
vi terrò informati
grazie
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 124
Iscritto il: 26/10/15 16:48

Re: invio email

Postdi mirmidone21 » 07/03/16 11:10

ok tutto bene. provato con blocchi di 500, nessun problema, tutto liscio come l'olio.
grazie infinite a tutti voi
Windows 7 sp1 -- Office 2013
Intel i5 4430 -- 3.00 ghz ---- 4gb RAM
mirmidone21
Utente Senior
 
Post: 124
Iscritto il: 26/10/15 16:48

Re: invio email

Postdi ricky53 » 07/03/16 13:27

Caio,
BENE, meglio così che non abbiate controlli sull'invio massivo di e-mail.

Buon proseguimento e ... alla prossima.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "invio email":

Email curiose
Autore: gimart
Forum: Applicazioni Office Windows
Risposte: 6

Chi c’è in linea

Visitano il forum: Marius44 e 13 ospiti