Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-06-2009, 22:45   #1
OrcaAssassina
Senior Member
 
Iscritto dal: Feb 2003
Messaggi: 2818
[VB.NET] Invio email: tanti utenti

Ho questo problema.

Devo inviare una email con un allegato a più utenti di una lista (1000-2000-4000 utenti) e non so come devo fare, mi spiego meglio.

Se creo l'email con un allegato ad esempio da 2Mb e poi lo spedisco a tutto la lista, il server SMTP di uscita logicamente mi ferma l'invio perchè sono troppi i destinatari.

Se creo l'email con un allegato ad esempio da 2Mb e poi lo spedisco ad uno ad uno della lista, mi serve una marea di tempo.
Esempio: Se invio questo allegato da 2Mb a 2000 utenti mi trovo un traffico di 4Gb in uscita, con un problema molto grave: mentre invio queste 2000 email non posso più utilizzare il programma fino alla fine di questa funzione

Avevo pensato ad una soluzione mista: suddiviso la lista con blocchi da 10-15 utenti, cosi tutti i server SMTP accettano l'invio, poi replico la stessa email con il famoso allegato fino alla fine dei gruppi.
Il tutto deve essere gestito con un MultiThread.
Cosi facendo piano piano invia tutti gli allegato però nello stesso tempo posso continuare ad utilizzare il programma.

Voi cosa mi consigliate?
Come posso risolvere questo problema?
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER
OrcaAssassina è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 14:56   #2
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da OrcaAssassina Guarda i messaggi
Se creo l'email con un allegato ad esempio da 2Mb e poi lo spedisco ad uno ad uno della lista, mi serve una marea di tempo.
Esempio: Se invio questo allegato da 2Mb a 2000 utenti mi trovo un traffico di 4Gb in uscita, con un problema molto grave: mentre invio queste 2000 email non posso più utilizzare il programma fino alla fine di questa funzione

Avevo pensato ad una soluzione mista: suddiviso la lista con blocchi da 10-15 utenti, cosi tutti i server SMTP accettano l'invio, poi replico la stessa email con il famoso allegato fino alla fine dei gruppi.
Il tutto deve essere gestito con un MultiThread.
Cosi facendo piano piano invia tutti gli allegato però nello stesso tempo posso continuare ad utilizzare il programma.
Non ho modo di fare un test ( 'azz, 4000 mail non è poco ), ma così su 2 piedi direi che ti sei risposto da solo :

1. Invii tutto il blocco di mail, una alla volta su un thread separato, e lasci libera l'applicazione.

2. Usi il sistema dei sotto-blocchi ( sempre multithread ) e dovresti andare più veloce.

A te testare nella realtà quale vada meglio...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 17:31   #3
OrcaAssassina
Senior Member
 
Iscritto dal: Feb 2003
Messaggi: 2818
ok

Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Non ho modo di fare un test ( 'azz, 4000 mail non è poco ), ma così su 2 piedi direi che ti sei risposto da solo :

1. Invii tutto il blocco di mail, una alla volta su un thread separato, e lasci libera l'applicazione.

2. Usi il sistema dei sotto-blocchi ( sempre multithread ) e dovresti andare più veloce.

A te testare nella realtà quale vada meglio...
Ok perfetto...proprio come dicevo io...

Ora c'è solo un problema....come faccio a fare un multithread????

Hai qualche esempio da indicarmi?
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER
OrcaAssassina è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 21:55   #4
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da OrcaAssassina Guarda i messaggi
Ok perfetto...proprio come dicevo io...

Ora c'è solo un problema....come faccio a fare un multithread????

Hai qualche esempio da indicarmi?
Se, come penso, stai realizzando un'applicazione WinForms posso farti questo esempio, semplice e, credo, non banale. In pratica creo un thread per un certo processo, che deve mostrare un'avanzamento e informarmi del termine.
L'essenziale è avere una classe ( ClasseThread ) con un metodo che "fa qualcosa" ( MetodoThread() ).
Nel tuo caso questa classe avrà le varie proprietà necessarie ( ad es. un array con tutti gli indirizzi mail, il percorso dell'allegato ecc... ) e ovviamente il metodo Invia()...

1. La mia ClasseThread :
Codice:
Public Class ClasseThread

    Private m_valore As Integer

    Public Property valore() As Integer
        Get
            Return m_valore
        End Get
        Set(ByVal value As Integer)
            m_valore = value
        End Set
    End Property

    Public Sub New(ByVal valoreDefault As Integer)
        m_valore = valoreDefault
    End Sub

    Public Sub MetodoThread()

        Dim FT As New FormThread
        FT.Show()
        FT.ProgressBar1.Minimum = 0
        FT.ProgressBar1.Value = FT.ProgressBar1.Minimum
        FT.ProgressBar1.Maximum = m_valore
        For i As Integer = 0 To m_valore
            System.Threading.Thread.Sleep(10)
            FT.ProgressBar1.Value = i
        Next
        MsgBox("Thread Terminato")

    End Sub

End Class
2. FormThread è una semplice Form con una ProgressBar.

3. Creo un un nuovo thread :
Codice:
        Dim CT As New ClasseThread(100)
        Dim T As New Threading.Thread(AddressOf CT.MetodoThread)
        T.Start()
Se ad esempio lo lanci ripetutamente da un pulsante puoi notare il sovrapporsi dei vari thread creati, senza che la Form di partenza rimanga bloccata in alcun modo... Prova.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2009, 14:28   #5
ivan.ruotolo
Junior Member
 
Iscritto dal: Jun 2009
Messaggi: 1
Generazione di email con allegato la fattura per N clienti come faccio ?????

Spett. Colleghi.

Ho in problema che non riesco a risolvere, vi chiedo l'enorme aiuto per finire il mio programmino.
Sono in combutta con un programma per creare fatture ed inviarle via email, tutto funziona, quando genero la fattura per singolo cliente ma ora devo generare un ciclo che generi tutte le fatture di fine mese verifichi tutti i clienti ed in automatico mi invii le fatture a tutti per email. potete darmi una mano per piacere ???

Vi allego il codice che mi genera uno l'anteprima e l'altro genera la fattura.

1
++++++++++++++++++anteprima+++++++++++++++++++
Private Sub TestaFatturaDataGridView_CellContentDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles TestaFatturaDataGridView.CellContentDoubleClick
Dim NrFattura As Integer
Dim DataFattura As Date
Dim Anno As String
Dim Logon As New CrystalDecisions.Shared.TableLogOnInfo

DataFattura = TestaFatturaDataGridView.SelectedRows.Item(0).Cells(1).Value
NrFattura = Int(TestaFatturaDataGridView.SelectedRows.Item(0).Cells(0).Value)
Anno = CStr(Year(DataFattura))
Logon.ConnectionInfo.DatabaseName = "xxxxxxx"
Logon.ConnectionInfo.ServerName = "xxxxxxx"
Logon.ConnectionInfo.UserID = "xxxxxxx"
Logon.ConnectionInfo.Password = "xxxxxxx"
Logon.ConnectionInfo.IntegratedSecurity = False
frmAnteprima.FatturaPDF1.Database.Tables("TestaFattura").ApplyLogOnInfo(Logon)
frmAnteprima.FatturaPDF1.Database.Tables("CorpoFattura").ApplyLogOnInfo(Logon)
frmAnteprima.FatturaPDF1.RecordSelectionFormula = "{TestaFattura.NrFattura} = " & NrFattura
frmAnteprima.ShowDialog()
frmAnteprima.Dispose()
End Sub
++++++++++++++++++generazione file in pdf+++++++++++++++++++

Private Sub btnInvioPDF_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInvioPDF.Click
Dim NrFattura As Integer
Dim Path As String
Dim FileName As String
Dim DataFattura As Date
Dim Anno As String
Dim Mese As String
Dim ACapo As String
ACapo = Chr(13) + Chr(10)
Path = System.IO.Directory.GetCurrentDirectory + "\FATTUREPDF"
Path = "\\x205\FATTUREPDF"
If Not System.IO.Directory.Exists(Path) Then
System.IO.Directory.CreateDirectory(Path)
End If
NrFattura = Int(TestaFatturaDataGridView.SelectedRows.Item(0).Cells(0).Value)
DataFattura = TestaFatturaDataGridView.SelectedRows.Item(0).Cells(1).Value
Anno = CStr(Year(DataFattura))
Mese = CStr(Format(DataFattura, "MMMM"))
Path = Path + "\" + Anno + "\" + Mese
If Not System.IO.Directory.Exists(Path) Then
System.IO.Directory.CreateDirectory(Path)
End If
FileName = CStr(NrFattura) + "_" + CStr(Year(DataFattura)) + CStr(Format(Month(DataFattura), "00")) + CStr(Microsoft.VisualBasic.DateAndTime.Day(DataFattura)) + "_" + DenominazioneTextBox.Text + ".pdf"
Path = Path + "\" + FileName

' ************************** P R O V A ***************************
Dim Logon As New CrystalDecisions.Shared.TableLogOnInfo

Logon.ConnectionInfo.DatabaseName = "StacxSQL"
Logon.ConnectionInfo.ServerName = "X205"
Logon.ConnectionInfo.UserID = "sapri"
Logon.ConnectionInfo.Password = "sapri"
Logon.ConnectionInfo.IntegratedSecurity = False

frmAnteprima.FatturaPDF1.Database.Tables("TestaFattura").ApplyLogOnInfo(Logon)
frmAnteprima.FatturaPDF1.Database.Tables("CorpoFattura").ApplyLogOnInfo(Logon)


' ************************** P R O V A ***************************
frmAnteprima.FatturaPDF1.RecordSelectionFormula = "{TestaFattura.NrFattura} = " & NrFattura
If Not System.IO.File.Exists(Path) Then
frmAnteprima.FatturaPDF1.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Path)
frmAnteprima.Dispose()
End If
frmMail.DestinationAddress.Text = Me.MailTextBox.Text
frmMail.DestinationName.Text = "Amministrazione " + Me.DenominazioneTextBox.Text
' frmMail.ListBox1.Items.Add(Path)
frmMail.Attachments1.Items.Add(Path)
'frmMail.ListBox1.Items.Add("C:\spoolPDF\Volantino.pdf")
frmMail.Body.Text = "Con la presente Vi inviamo in allegato il seguente file, in formato pdf, della Fattura N. " + _
CStr(NrFattura) + " del " + CStr(DataFattura) + " :" + ACapo + ACapo + _
"- FATTURA - " + FileName + ACapo + ACapo + "Per vedere il contenuto del file allegato cliccare sulla graffetta e quindi scegliere l'opzione desiderata." + _
ACapo + ACapo + _
"Riportiamo, altresì, di seguito le coordinate bancarie utili per il pagamento della fattura allegata: " + ACapo + ACapo

'Fattura Diana
If DataFattura <= #12/31/2007# Then
frmMail.Body.Text = frmMail.Body.Text + _
"coordinate bancarie"
"Per la visualizzazione dei file pdf e' necessario il programma Acrobat Reader." + ACapo + _
"Per scaricare, cliccare qui: http://www.adobe.it/products/acrobat/readstep2_allversions.html" + ACapo
Else
frmMail.Body.Text = frmMail.Body.Text + _
"Banco di Napoli S.P.A." + ACapo + _
"coordinate bancarie"
"Per la visualizzazione dei file pdf e' necessario il programma Acrobat Reader." + ACapo + _
"Per scaricare, cliccare qui: http://www.adobe.it/products/acrobat/readstep2_allversions.html" + ACapo
End If
frmMail.MdiParent = frmSapri
frmMail.Show()

End Sub

++++++++++++++++++fine generazione file in pdf+++++++++++++++++++

Grazie mille per il vostro tempo
ivan.ruotolo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Implementazione NVMe nativa disattivata ...
Polestar 2 e 3: le batterie integrano or...
Crisi delle memorie: ecco le soluzioni p...
Il satellite ESA Proba-3 è tornat...
'Chiudete (quasi) tutto', il risultato d...
Tesla, maggiore autonomia grazie a una r...
Nasce TrendAI, la divisione di Trend Mic...
Recensione Motorola Signature: il primo ...
TeraFab, Elon Musk parte all'assalto di ...
L'ambiziosa base lunare permanente sulla...
Litografia BEUV (Beyond-EUV): la startup...
SAP e l'IA agentica: dall'hype alla matu...
'Abbiamo raggiunto l'AGI': Jensen Huang ...
Claude ora usa il mouse e la tastiera al...
Analisi Opensignal 2026: TIM si prende l...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:48.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v