[RISOLTO] CONCATENARE INDIRIZZI MAIL

di il
3 risposte

[RISOLTO] CONCATENARE INDIRIZZI MAIL

Salve a tutti

Ho questo quesito.

Dovrei, per esigenze lavorative, inviare una mail massiva a chi è presente in una determinata mailing list

Nella tabella da cui prendo i dati, l'indirizzo mail è di tipo "collegamento ipertestuale".
Quando vado ad aprire la mail (tramite il pulsante invia che è presente sulla maschera mi si apre outlook) mi ritrovo tutti gli indirizzi mail separati dal ";" ma in questa maniera:

#mailto:#; #mailto:#; ... e così via

I codici che utilizzo sono i seguenti (vorrei ringraziare anticipatamente sia Philcattivocarattere sia Alex che avevano postato la seguente funzione in post abbastanza datati":
Function getmailinglist() As String

Dim strElencoMail As String
Dim rs As DAO.Recordset

Set rs = DBEngine(0)(0).OpenRecordset("Q_Mail2")

If rs.EOF Then
   MsgBox "Nessun Indirizzo Mail"
   rs.Close
   Set rs = Nothing
   Exit Function
End If
rs.MoveFirst
Do Until rs.EOF
    strElencoMail = strElencoMail & rs.Fields("[mail aziendale]").Value & "; "
    rs.MoveNext
Loop

rs.Close
Set rs = Nothing

strElencoMail = Mid$(strElencoMail, 1, Len(strElencoMail) - Len("; "))

getmailinglist = strElencoMail
End Function

Questo è il codice invece del pulsante invia:
Private Sub invia_Click()
Dim OutApp As Object
Dim OutMail As Object
Dim strMsg, strObj As String
Dim strDest, strCc, strCcn As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    
    strObj = Me.oggetto
    strMsg = Me.corpo_txt
    
    strDest = Me.dest_txt
    strCc = Me.cc_txt
    strCcn = Me.ccn_nv
    
            With OutMail
            .To = ""
            .CC = ""
            .BCC = strCcn
            .Subject = strObj
            .HTMLbody = strMsg
            .Display
            End With
    
End Sub
La mia domanda è: c'è modo di togliere quel #mailto .....#??
Ho provato con il replace, ma non riesco a fare un replace generico

Ho provato ad aggiungere questa riga nella funzione, ma mi da chiamata di routine non valida
strElencoMail = Replace(rs.Fields("[mail aziendale]"), InStr(Len(Left("[mail aziendale]", InStr(1, "[mail aziendale]", "#") - 1)), "[mail aziendale]"), "")
Grazie in anticipo

3 Risposte

  • Re: [RISOLTO] CONCATENARE INDIRIZZI MAIL

    Nella funzione getmailinglist una volta fatto il ciclo sul campo [mail aziendale], per recuperare le varie email, aggiungi sotto la riga con Loop la segente assegnazione : strElencoMail = Replace(strElencoMail, "#mailto:", "")
  • Re: [RISOLTO] CONCATENARE INDIRIZZI MAIL

    Diciamo che hai commesso un errore finzionale ovvero hai usato un campo di tipo HYPERLINK.
    Fossi in te rivedrei questa scelta a favore di un campo base di tipo testo, eseguendo una query update di replace sui campi Mail esistenti per sopprimere la parte di hyperlink.

    Il.codice suggerito da Stifone non va bene in quanto toglie solo 1 pezzo lasciando 2 indirizzi uguali... basterebbe fare jl debug di un caso per vederlo.

    Va operato u taglio diverso.

    Quindi opera in modo radicale sul campo... poi se hai bisogno del collegamento hypertexte usa la funzione FollowHyperlink .
  • Re: [RISOLTO] CONCATENARE INDIRIZZI MAIL

    Grazie mille Alex

    Ho fatto come hai suggerito tu e funziona perfettamente
Devi accedere o registrarti per scrivere nel forum
3 risposte