Newsgroup: it.comp.lang.delphi
Titolo: [D7] SMTP Mail Con Logo

Ciao A tutti,
 
come al solito il mio ed unico cliente ( mio cognato ) arriva con la solita richiesta, deve mandare una mail per la privacy ad un centinaio di clienti.
Fino a qui nessun problema, dall'applicativo in essere mando già mail, ma mio cognato vuole mandare il disclaimer all'interno del body, tale disclaimer contiene il logo della società che deve comparire vicino ai dati della stessa, esempio, logo + Scritta con un font particolare.
 
Tramite un giretto su google ho trovato un pezzo di codice ( che vi riporto qui sotto ) che funziona egregiamente, l'unica cosa è che :
 
1) mi mette l'immagine come allegato.
2) mi mette all'interno del body "cid:logo.jpg" che, cliccato apre il logo.
 
Quello che vorrei è che il logo fosse visibile all'interno del body insieme alle altre scritte fatte da me e non in allegato ne tantomeno come nel punto 2.
 
Qui di seguito il codice.
 
Ringrazio anticipatamente tutti per l'eventuale supporto e/o sopportazione di mio cognato.
 
Ciao e grazie da Enrico Giudici c/o Anthelios.
 
procedure TForm1.Button1Click(Sender: TObject);
var
	html: TStrings;
	htmpart, txtpart: TIdText;
	bmppart: TIdAttachment;
	email: TIdMessage;
	filename: string;
begin
	filename := 'C:\Work\logo.JPG';
	html := TStringList.Create();
	html.Add('<html>');
	html.Add('<head>');
	html.Add('</head>');
	html.Add('<body>');
	html.Add('<p style="font-size:15px;font-family:Calibri;">testo1</p>');
	html.Add('<p style="font-size:15px;font-family:Calibri;">testo2</p>');
	html.Add('<p style="font-size:15px;font-family:Calibri;">testo3</p>');
	html.Add('<p style="font-size:15px;font-family:Calibri;">testo4</p>');
	html.Add('<p style="font-size:15px;font-family:Calibri;">Sito Internet <a href="
http://www.xxxx.it/
">
www.xxxx.it
.</a></p>');
	html.Add('Disclaimer 1');
	html.Add('Disclaimer 2');
	html.Add('Disclaimer 3');
	html.Add('Disclaimer 4');
	html.Add('Disclaimer 5');
	html.Add('Disclaimer 6');
	html.Add('Disclaimer 7');
	html.Add('Disclaimer 8');
	html.Add('cid:logo.jpg');
	html.Add('Immagine Logo</body>');
	html.Add('</html>');
	//
	email := TIdMessage.Create(nil);
	email.From.Text := '
pi...@pluto.it
';
	email.Recipients.EMailAddresses :='
pape...@minni.it
';
	email.Subject := 'Prova Mail';
	email.ContentType := 'multipart/mixed';
	email.Body.Assign(html);
	//
	txtpart := TIdText.Create(email.MessageParts);
	txtpart.ContentType := 'text/plain';
	txtpart.Body.Text := '';
	//
	htmpart := TIdText.Create(email.MessageParts, html);
	htmpart.ContentType := 'text/html';
	bmppart := TIdAttachment.Create(email.MessageParts, filename);
	bmppart.ContentType := 'image/jpeg';
	bmppart.FileIsTempFile := true;
	bmppart.ContentDisposition := 'inline';
	bmppart.ExtraHeaders.Values['content-id'] := 'logo.JPG';
	bmppart.DisplayName := 'logo.jpg';
	//
    try
          idSMTP.Connect();
    try
          idSMTP.Send(email);
          ShowMessage('Sent');
    except
          on E: Exception do
          ShowMessage('Failed: ' + E.Message);
    end;
    finally
          idSMTP.Disconnect();
    end;
end;

Ciao,
   non quoto per praticita' ...
 
Ho avuto un problemino simile al tuo poco tempo fa.
I loghi (foto, disegni ecc..), a prescindere di dove essi vengano inseriti 
nel testo, sono allegati e vengono posizionati dove indicato dopo aver 
caricato il messaggio.
 
Non credo ci siano molte alternative.
Le email che invio dal mio programma, con tutti i web reader tipo yahoo, 
riportano in calce al messaggio tutte le immagini come allegati; immagini 
che nel testo sono dove devono essere.
 
Ciao
 
Daniele
 
 

 che nel testo sono dove devono essere.
 
ma secondo te è un problema del protocollo SMTP ? Mio cognato quando mi manda una mail con outlook con all'interno il logo lo vedo insieme alle scritte e non come allegato.


 
 
 
-- 
Oggi c'e' una grande battaglia di idee,
ma alla fine non ci saranno ne vinti,
ne vincitori, ne idee! S. Benni da Elianto.

Risolto il problema, grazie ad un amico che lavora in PHP mi ha detto che anche a lui era capitato questo problema, lui ha risolto caricando l'immagine su internet e nel corpo della mail con un tag html IMG SRC l'ha collegata.
Ho fatto anch'io così e sembra funzionare perfettamente.
 
Un ringraziamento a tutti per il supporto.
 
Ciao da Enrico Giudici c/o Anthelios.

 Ho fatto anch'io così e sembra funzionare perfettamente.
 
Scusami.... probabilmente ho capito male ....
Per non avere l'immagine come allegato (che in tutte le web mail sono 
mostrati, comprese le pec) che in pratica non danno fastidio (forse per una 
questione cosmetica), tu carichi l'immagine su un server free e metti nel 
testo del messaggio il link.
Piu' o meno quello che si fa nei forum ....
 
Se e' cosi', e' una soluzione che non condivido anche per i tempi di 
permanenza delle immagini.
A titolo personale, preferisco che il contenuto di un messaggio (testo, 
loghi, allegati) siano tutti a disposizione.
Cosa succede alla tua email se per qualsiasi motivo l'host cambia nome o 
l'immagine viene cancellata dal server (ipotesi piu' probabile) ??
Nessuna critica, solo un pensiero.
 
Ciao e buon lavoro
 
Daniele
 
 

 Nessuna critica, solo un pensiero.
 
Ciao Daniele,
nessun problema, mio cognato voleva il suo logo all'interno del body così come quando manda la mail da outlook.
Il fatto di mettere l'immagine su server free è dovuta al fatto che le mail vengono inviate in blocco una sola volta e basta, infatti mio cognato ha già inviato le mail per cui il programmino non servirà più.


 servirà più.
Fino alla prossima volta :-)))
 
Ciao e buona settimana
 
Daniele