Newsgroup: it.comp.lang.visual-basic
Titolo: avere a disposizione gli indirizzi nella rubrica outlook e il server SMTP

sapete come potrei andare a leggere il server SMTP del computer su cui mi
trovo magari nel registro di sistema o da altre parti e avere inoltre gli
indirizzi di posta lettronica presenti nella rubrica di outlook express a
disposizione in vb per invio di email da codice con winsock?
Grazie a tutti.

disposizione in vb per invio di email da codice con winsock?
per questo: MAPI
ma...  1 + 2 mi ricorda tanto Melissa... :-)
Ciao,
Moreno
-- 
sirri at morenosoft dot com
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------

> ma...  1 + 2 mi ricorda tanto Melissa... :-)
Ti sbagli si tratta di "I Love You" ;))))

Ti sbagli si tratta di "I Love You" ;))))
E' una battuta? Nel senso che i tuoi intenti sono altri?
Sennò dimmi cosa devo fare: aiutarti? Scriverti il codice che ti serve?
Plonkarti? Fare un programma simile e mandartelo per posta camuffato da
un documento word? A te la scelta... sono disponibile a qualunque
soluzione tranne la seconda e, dipendentemente dalla risposta, forse la
prima... :-)))


mi serve un vostro aiuto, sto cercando di inviare 1 email con il seguente
codice:
accade però che se metto qualcosa in bcc campo nascosto, la email mi arriva
2 volte all'indirizzo  Me!txtTo anzichè 1 di quà e 1 di la,
inoltre se mando un email da outlook express con un indirizzo nel campo
nascosto quando la ricevo e vado in proprietà non vedo gli indirzzi nascosti
mentre se vado in proprità del messaggio da me creato con winsock vedo gli
indirizzi nascosti.
cosa sbaglio? grazie.
----------------------------------------------------------------------------
-----
Private Sub InviaOrdini()
    Dim strPath As String
    Dim frm As Form
    Dim I%
    Set frm = New Form_MailFunction
    DoCmd.Hourglass True
    '***Settings
    'Tipo di protocollo
    frm.Wsk.Protocol = sckTCPProtocol
    '########## SMTP del server remoto
    frm.Wsk.RemoteHost = DLookup("[SMTP]", "tblConfig")
    If frm.Connect Then Set frm = Nothing: GoTo CHIUDI  'apre la connessione
    '########## Soggetto
    frm.Subject = Nz(Me!txtSubject, "")
    '########## Nome e cognome del mittente
    frm.senderName = Nz(Me!txtSenderName, "")
    '########## Indirizzo Mail del mittente
    frm.SenderEmail = Trim$(Nz(Me!txtSenderMail, ""))
    '########## Indirizzo Mail del destinatario
    frm.RecipientEmail = Trim$(Me!txtTo)
    '########## Indirizzo Cc
   ' frm.Cc = Trim$(Nz(Me!txtCc, ""))
    '########## Indirizzo Bcc
    frm.Bcc = Trim$(Nz(ccn, ""))
    '########## Indirizzo ReplyTo
    frm.ReplyTo = Trim$(Nz(Me!txtReplyTo, ""))
    '########## Messaggio
    frm.txtBody = Nz(Me!txtMessaggio, "")
    '########## NOME FILE privo del Path
    If Nz(Me!txtAttach, "") <> "" Then
        frm.AttachName = StripPath(Me!txtAttach)
        If Right(frm.AttachName, 4) = ".doc" Or Right(frm.AttachName, 4) =
".rtf" Then frm.AttachType = "application/msword"
        If Right(frm.AttachName, 4) = ".jpg" Then frm.AttachType =
"image/jpeg"
        If Right(frm.AttachName, 4) = ".gif" Then frm.AttachType =
"image/gif"
        If Right(frm.AttachName, 4) = ".zip" Then frm.AttachType =
"application/x-zip-compressed"
        Dim hFile&, FileLength&, DATA$
        hFile = FreeFile()
        Open Me!txtAttach For Binary Access Read As #hFile
        FileLength = LOF(hFile)
        DATA = String(FileLength, Chr(0))
        Get #hFile, , DATA
        Close #hFile
        frm.AttachFile = Encode64(DATA)
    End If
    frm.DateSent = Now()
    If frm.SendMail Then MsgBox "Errore durante la spedizione della mail":
GoTo CHIUDI
    If frm.Disconnect Then MsgBox "Errore durante la chiusura della
connessione"
CHIUDI:
    DoCmd.Hourglass False
    Set frm = Nothing
End Sub

indirizzi nascosti.
[CUT]
sarò rincoglionito causa l'ora, ma io di codice che per inviare una mail
non ne vedo...


forse è questo
--------------------------
    'Esegue le verifiche essenziali
    If Len(SenderEmail) < 8 Or InStr(SenderEmail, "@") = 0 Or
InStr(SenderEmail, ".") = 0 Then
        MsgBox "Mail non spedita perche' mittente non valido": Exit Function
    End If
    If Len(RecipientEmail) < 8 Or InStr(RecipientEmail, "@") = 0 Or
InStr(RecipientEmail, ".") = 0 Then
        MsgBox "Mail non spedita perche' destinatario non valido": Exit
Function
    End If
    Dim msgBody$
    'Azzera variabili
    FlagSent = 0
    'specifica l'indirizzo del mittente
'Debug.Print "senderEmail "; senderEmail
    Wsk.SendData ("MAIL FROM:<" & SenderEmail & ">" & vbCrLf)
    Call getreply: If Left(strData, 3) <> "250" Then GoTo HandleError
    'specifica l'indirizzo a cui inviare la mail
'Debug.Print "RecipientEmail "; RecipientEmail
    Wsk.SendData ("RCPT TO:<" & RecipientEmail & ">" & vbCrLf)
    Call getreply: If Left(strData, 3) <> "250" Then GoTo HandleError
    'Se c'e' una Carbon Copy
    If Cc <> "" Then
        Wsk.SendData ("RCPT TO:<" & Cc & ">" & vbCrLf)
        Call getreply: If Left(strData, 3) <> "250" Then GoTo HandleError
    End If
    'Se c'e' una Blind Carbon Copy
    If Bcc <> "" Then
        Wsk.SendData ("RCPT TO:<" & Bcc & ">" & vbCrLf)
        Call getreply: If Left(strData, 3) <> "250" Then GoTo HandleError
    End If
    'Richiesta invio DATI
    Wsk.SendData ("DATA" & vbCrLf)
    Call getreply: If Left(strData, 3) <> "354" Then GoTo HandleError
'## Inizio concatenamento BODY e spedizione
    Call USDate ' Codifica la data da Europea ad Americana
    msgBody = "Date: " & DateSent & vbCrLf
    msgBody = msgBody & "From: " & senderName & " <" & SenderEmail & ">" &
vbCrLf
    msgBody = msgBody & "To: <" & RecipientEmail & ">" & vbCrLf
    If Cc <> "" Then msgBody = msgBody & "Cc: <" & Cc & ">" & vbCrLf
    If Bcc <> "" Then msgBody = msgBody & "Bcc: <" & Bcc & ">" & vbCrLf
    If ReplyTo <> "" Then msgBody = msgBody & "Reply-To: <" & ReplyTo & ">"
& vbCrLf
    msgBody = msgBody & "Subject: " & Subject & vbCrLf
    'AttachFile = ""
    If Len(AttachFile) > 0 Then ' Se l'attachment ha il contenuto
        msgBody = msgBody & "MIME-Version: 1.0" & vbCrLf
        msgBody = msgBody & "Content-Type: multipart/mixed;" & vbCrLf
        msgBody = msgBody & "    boundary = ""----=_NextPart_" &
ReplaceString(Left(AttachName, InStr(AttachName, ".") - 1), "\", "_") & """"
& vbCrLf
        msgBody = msgBody & "X-Priority: 1 (Highest)" & vbCrLf
        msgBody = msgBody & vbCrLf & "This is a multi-part message in MIME
format." & vbCrLf & vbCrLf
        msgBody = msgBody & "------=_NextPart_" &
ReplaceString(Left(AttachName, InStr(AttachName, ".") - 1), "\", "_") &
vbCrLf
        msgBody = msgBody & "Content-Type: text/plain;" & vbCrLf
        msgBody = msgBody & "    charset = ""iso-8859-1""" & vbCrLf
        msgBody = msgBody & "Content-Transfer-Encoding: 7bit" & vbCrLf
    End If
    msgBody = msgBody & vbCrLf & txtBody & vbCrLf
    If Len(AttachFile) > 0 Then ' Se l'attachment ha il contenuto
        msgBody = msgBody & vbCrLf & "------=_NextPart_" &
ReplaceString(Left(AttachName, InStr(AttachName, ".") - 1), "\", "_") &
vbCrLf
        msgBody = msgBody & "Content-Type: " & AttachType & ";" & vbCrLf
        msgBody = msgBody & "    name = """ & AttachName & """" & vbCrLf
        msgBody = msgBody & "Content-Transfer-Encoding: base64" & vbCrLf
        msgBody = msgBody & "Content-Disposition: attachment;" & vbCrLf
        msgBody = msgBody & "    filename = """ & AttachName & """" & vbCrLf
& vbCrLf
        msgBody = msgBody & AttachFile & vbCrLf
        msgBody = msgBody & vbCrLf & "------=_NextPart_" & Left(AttachName,
InStr(AttachName, ".") - 1 & vbCrLf)
    End If
'Debug.Print msgBody
    'Invia l'ultima riga se priva di CR, e ne aggiunge uno
    Wsk.SendData (msgBody & vbCrLf & "." & vbCrLf)
    Call getreply: If Left(strData, 3) <> "250" Then GoTo HandleError
    FlagSent = 1
    GoTo CHIUDI
HandleError:
    MsgBox "Errore di risposta del sever di posta:" & vbCrLf &
Wsk.RemoteHost: Wsk.Close: SendMail = -1: FlagSent = 2
CHIUDI:

un ultima cosa, nel campo bcc come uso più indirizzi?
ho provato a separarli con ; o con , ma mi restituisce errore, sai come
posso fare?
grazie.

         Wsk.SendData ("RCPT TO:<" & Bcc & ">" & vbCrLf)
Qui dice che se c'e' una copia o una copia nascosta manda sempre la stringa
"RCPT TO:<indirizzo@mail>" quindi dovresti leggerti un po la documentazione
ufficiale che non so che numero abbia smazza un po con google. Trovi anche
la risposta all'invio a + recipienti !
Una volta ci ero passato anche io ed avevo risolto tutto con gugluccio !!!
^_^
-- 
<Gigio2K>
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

    End If
no evidentemente no... :-/



scusa moreno ma ho tentato di scriverti dal tuo sito internet e mi ha
restituito errore di invio 2 volte? sicuro che funziona? hai un altra email
personale?

 Moreno
Morenuccio, se sapevo cosa vuol dire quel codice mica scrivevo qui, certo lo
capisco sommariamente ma appunto ho chiesto alcune cose perchè lo sto usando
questo codice ma non lo scritto io.


wrote:

Allora:
- prima chiedi "vorrei avere un messaggio popup "invio email terminato"
quando winsock termina l'invio di una o più email"
questo mi fa presumere che tu conosca già l'uso di winsock e che sappia
come inviare l'e-mail. Ti ho risposto con il codice di risposta del
server che ti serviva e suggerito di leggerti la RFC del protocollo
SMTP.
- poi chiedi "come potrei andare a leggere il server SMTP del computer
su cui mi trovo" e "avere inoltre gli indirizzi di posta lettronica
presenti nella rubrica di outlook express"
che non centra nulla non la prima domanda, ma almeno è in un thread
separato.
Ti vien risposto picche per ovvi motivi
- infine, nello stesso thread del precedente, esponi un problema nel tuo
codice, però postando del codice che non centra niente.
Allora, sa prendo in mano del codice non scritto da me, prima cerco di
capire _cosa_ fa, poi entro nel dettaglio di _come ha fatto_ e se c'è un
problema, cerco quantomeno di localizzarlo per saper poi su cosa
documentarmi e dove mettere le mani.
Altrimenti avresti dovuto scrivere: "ho trovato questo codice, ma non so
cosa faccia e non so farlo funzionare. Siccome non ho voglia/tempo di
studiarlo, potete farlo voi?".
Se evidentemente a te non interessa studiare un codice ma ti basta
copiarlo, sperare che funzioni e dire "ho fatto questo", allora basta
chiedere e ti spedisco migliaia di righe di codice, quanto vuoi: premi
pure ctrl+f5, però poi per accedere alla rubrica di outlook, dovrai
prima reinstallare windows... 
Ci siamo intesi? Credo di sì. Quindi, se c'è gente che posta del codice,
lo fa affinché chi lo usa possa customizzarlo, altrimenti posterebbe
l'url del componente compilato, non trovi?
Se vuoi un consiglio, cerca di studiarti il codice che trovi: credimi
non è tempo perso, anzi...


 Moreno
Accetto la critica, però come ti ripeto sapevo usarlo questo codice
soltanto non riuscivo a localizzare il motivo per cui arrivasse 2 volte
il messaggio all'indirizzo specificato in  A anzichè uno in A e uno in Bcc
tutto qui.
Ok cercherò di studiarmelo, grazie lo stesso.