Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247

    [DELPHI][INDY] Problema con l'invio di e-mail

    Salve,

    premetto che non sono uno spammer e non voglio diventarlo.

    Ho letto svariati tutorial sull'uso di Indy per l'invio di messaggi e-mail: il problema è che alcuni server SMTP si rifiutano di consegnare le e-mail che gli invio, molto probabilmente per via dei loro (stupidi) filtri anti-spam.

    In particolare, mail.libero.it (che utilizzo normalmente con Microsoft Outlook e Mozilla Thunderbird), si rifiuta categoricamente di inviare le mie e-mail. O meglio, non dà alcun messaggio d'errore, ma poi la mail non viene consegnata.

    Esiste un modo, con Indy, per inviare un messaggio e-mail in modo che non sia distinguibile da quello inviato da un normale client di posta (leggi Thunderbird o Outlook).

    Capisco che la mia è una domanda da spammer, ma vi assicuro che gli spammer sanno già come fare e non hanno bisogno di chiedere su un forum. Come al solito queste misure di sicurezza svantaggiano gli utenti "buoni".

    Grazie in anticipo

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Non ho avuto problemi di questo tipo nell'invio di email.

    Come hai configurato il componente? :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247
    Originariamente inviato da alka
    Non ho avuto problemi di questo tipo nell'invio di email.

    Come hai configurato il componente? :master:
    codice:
      object SMTP: TIdSMTP
        MailAgent = 'Mozilla Thunderbird 1.5.0.8 (Windows/20061025)'
        UseEhlo = False
        SASLMechanisms = <>
        Host = 'mail.libero.it'
      end
    
      object MailMessage: TIdMessage
        AttachmentEncoding = 'MIME'
        ContentType = 'multipart/alternative'
        Encoding = meMIME
        ConvertPreamble = True
        Left = 448
        Top = 8
      end
    Tutte le altre impostazioni come da default.


    Per l'invio dell'e-mail:
    codice:
      //setup mail message
      MailMessage.From.Address := ...
      MailMessage.From.Name := ...
      MailMessage.Recipients.EMailAddresses := ...
      MailMessage.Subject := 'Oggetto';
      MailMessage.Body.Text := 'Questo è un messaggio HTML!';
      lTextPart := TIdText.Create(MailMessage.MessageParts);
      lTextPart.Body.Text := '<html><body>Prova per l''invio di un e-mail!</body></html>';
      lTextPart.ContentType := 'text/html';
    
      try
        try
          SMTP.Connect;
          SMTP.Send(MailMessage);
        except on e : Exception do
        // Riporta eccezione
        end;
      finally
        if SMTP.Connected then SMTP.Disconnect;
      end;
    Mi sembrano tutte cose normali... Ma Libero la pensa diversamente!

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Ad ogni modo, in genere l'esclusione per filtri antispam si basa su black list di indirizzi: significa che il problema non è necessariamente nel messaggio, ma dipende dall'indirizzo IP della macchina che provvede al suo invio.

    L'ideale è procurarsi un server SMTP personalizzato o acquistare un servizio analogo e affidabile su Internet per lo smistamento dei messaggi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247
    Originariamente inviato da alka
    Ad ogni modo, in genere l'esclusione per filtri antispam si basa su black list di indirizzi: significa che il problema non è necessariamente nel messaggio, ma dipende dall'indirizzo IP della macchina che provvede al suo invio.

    L'ideale è procurarsi un server SMTP personalizzato o acquistare un servizio analogo e affidabile su Internet per lo smistamento dei messaggi.

    Ciao!
    La macchina è la mia, e con altri client di posta i messaggi vengono accettati. Non credo che il problema sia al livello di IP, ma al livello di headers.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da firefox88
    La macchina è la mia
    Sì, appunto. Occorre vedere quale indirizzo IP hai.

    Originariamente inviato da firefox88
    e con altri client di posta i messaggi vengono accettati. Non credo che il problema sia al livello di IP, ma al livello di headers.
    Non ti accetta alcun messaggio, oppure solo alcuni e altri no?

    La proprietà Recipients è inizializzata correttamente?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247
    La proprietà Recipients è inizializzata correttamente?
    Bravo! Era proprio questo il problema. Al destinatario non era associato un "nome", e quello, evidentemente, era un comportamento spammer-like.

    Così va alla grande.

    codice:
      with MailMessage.Recipients.Add do
      begin
        Name := 'Nome del destinatario';
        Address := 'email@del.destinatario';
      end;
    Basta... Ero stanco di essere trattato come uno spammer!

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da firefox88
    Bravo! Era proprio questo il problema. Al destinatario non era associato un "nome", e quello, evidentemente, era un comportamento spammer-like.
    Buono a sapersi...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    247
    Ora il problema è risolto, ma non è escluso che si ripresenti. Questo per via della natura "semplificata" dei componenti Indy.

    Come faccio a inviare una e-mail in modalità, per così dire, "raw", cioè scrivendo gli header a mano, inserendo i boundaries e i blocchi di dati a mano, ecc...?

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da firefox88
    Ora il problema è risolto, ma non è escluso che si ripresenti. Questo per via della natura "semplificata" dei componenti Indy.
    La natura non è "semplificata", ma solamente "wrappata".

    Originariamente inviato da firefox88
    Come faccio a inviare una e-mail in modalità, per così dire, "raw", cioè scrivendo gli header a mano, inserendo i boundaries e i blocchi di dati a mano, ecc...?
    Beh, evita l'uso dei componenti Indy e scrivi i dati nel formato che preferisci direttamente sul socket.

    Voglio dire, se devi gestire autonomamente tutto ciò che fanno i componenti Indy, tanto vale non utilizzarli, giusto?

    In ogni caso, le proprietà definite dal componente, come dicevo all'inizio, ricoprono tutte le caratteristiche del messaggio così come previsto dalla RFC; a questo punto, se il server di destinazione rifiuta un messaggio per mancanza di un dato, il problema non è nel codice che lo prepara ma nel dato stesso che non viene fornito... non so se mi spiego.

    Io accerterei - aiutandomi con la documentazione ufficiale - dell'effettivo problema che si è verificato e poi agirei di conseguenza, per evitare di "reinventare la ruota" senza ottenere una effettiva soluzione definitiva.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.