Condividi tramite

Invio e-mail Tramite Outlook con indirizzi in Excel

Anonimo
2015-09-03T13:28:39+00:00

Buon pomeriggio a tutti gli amici della community, chiedo il vostro aiuto per risolvere una problematica che si è presentata appena ho installato Office 2013 e Windows 8 sul mio nuovo PC ( è da questo momento che il codice che vi riporto non mi funziona più) cosa che non avveniva con W7 e Office 2010.

Il codice che mi invia Email multiple mi va in errore nella riga :    .to = Cells(i, 2)

Il codice che utilizzo per inviare e-mails e files allegati  è il seguente:

Option Explicit

Sub inviamail()

Application.ScreenUpdating = False

Dim OutApp As Object

Dim EmailAddr As String

Dim subj As String

Dim BodyText As String

Dim i As Long

Dim rr As Long

Dim OutMail As Object

Sheets("Foglio4").Select

Range("O:P").ClearContents

rr = Range("A" & Rows.Count).End(xlUp).Row

Set OutApp = CreateObject("Outlook.Application")

Set OutMail = OutApp.CreateItem(0)

For i = 2 To rr

With OutMail

.to = Cells(i, 2)

.cc = Cells(i, 3)

.bcc = ""

.Subject = Cells(i, 4).Value

.body = Cells(i, 5)

.Attachments.Add (Cells(i, 6) & Cells(i, 7))

.send

Application.SendKeys "%I" ' non fa uscire la finestra di Outlook che autorizza l'invio

End With

On Error GoTo ERRORE

Cells(i, 15) = "INVIATA"

Set OutMail = Nothing

Set OutApp = Nothing

Application.SendKeys "%I"

Next i

ERRORE:

Cells(i, 16) = "ERRORE, NON INVIATA"

MsgBox ("La mail non è stata inviata alla seguente finanziaria :") & Cells(i, 11).Value

Application.ScreenUpdating = True

Resume Next

MsgBox ("Invio multimail completato")

End Sub

Cosa è cambiato e perché non funziona più il codice.

Ringrazio anticipatamente coloro che mi aiuteranno a risolvere la problematica.

Ciao Nicola.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

2 risposte

Ordina per: Più utili
  1. Anonimo
    2015-09-04T06:35:58+00:00

    Ciao Norman, grazie come sempre per il tuo intervento, ho risolto creando un altro codice che ho trovato in rete e che mi ha eliminato il problema.

    Lo posto per eventuale necessità di altri utenti.

    Sub invia_email_CDO_SMTP() ' questo metodo evita la fastidiosa schermata di outlook che richiede il permesso prima di inviare le e.mails

    Sheets("Foglio1").Select

    rr = Range("A" & Rows.Count).End(xlUp).Row

    For i = 2 To rr

    Set mess = CreateObject("CDO.Message")

    Set Config = CreateObject("CDO.Configuration")

    Config.Load -1 ' CDO Source Defaults

    Config.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

    Config.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") _

    = "xxxxxxxx" 'metti qui il tuo server smtp

    'Type of authentication, NONE, Basic (Base64 encoded), NTLM

    'Config.Fields.Item("schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

    'Your UserID on the SMTP server

    'Config.Fields.Item("schemas.microsoft.com/cdo/configuration/sendusername") = ""

    'Your password on the SMTP server

    'Config.Fields.Item("schemas.microsoft.com/cdo/configuration/sendpassword") = ""

    'Config.Fields.Item("schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

    Config.Fields.Update

    With mess

    Set .Configuration = Config

    .To = Cells(i, 2) 

    .CC = Cells(i, 3)

    .BCC = ""

    .From = "******@libero.IT "

    .Subject = Cells(i, 4) 'Range("oggetto").Value

    .TextBody = " Ciao"

    .AddAttachment 'PercorsoAssolutoFileDaAllegare

    .Send

    ' .ReadReceiptRequested = True ' richiede messaggio di conferma

    End With

    On Error GoTo ERRORE

    Cells(i, 15) = "INVIATA"

    Set mess = Nothing

    Set Config = Nothing

    Next i

    ERRORE:

    Cells(i, 16) = "ERRORE, NON INVIATA"

    MsgBox ("La mail non è stata inviata al:") & Cells(i, 2).Value

    Application.ScreenUpdating = True

    Resume Next

    MsgBox ("Invio multimail completato")

    End Sub

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-09-03T14:54:06+00:00

    Ciao Nicola,

    Per versioni di Outlook da Outlook 2007 in poi, non dvrebbe essere necessario utilizzare SendKeys. Per le vesioni precedente era spesso necessario utilizzare, ad esempio  prodotti da terzi, ad esempio Outlook Redemption o Express ClickYes.

    Se vuoi perseverare con Sendkeys, prova invece:

        .Display

        Application.Wait (Now + TimeValue("0:00:02"))

        Application.SendKeys "%s"

    Comunque, penso che sia molto probabile che il problema sia dovuto alla interazione con un programma antivirus. A questo proposito, vedi

    https://msdn.microsoft.com/it-it/library/ms778202.aspx?f=255&MSPPError=-2147217396

    Purtroppo, questo articolo MSDN è solo disponibili in inglese.

    In caso di necessità, potresti provare Express ClickYes, che offrono il software che è libero di provare:

    http://www.contextmagic.com/express-clickyes/

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento