Newsgroup: it.comp.lang.vo-clipper
Titolo: Mail con immagini

Ciao a tutti
Qualcuno ha un esempio o sa dirmi dove trovarlo di invio email con 
dentro immagini (che non siano dei link a fonti esterne). Intendo mail 
html che visualizzino l'immagine, non semplicemente degli allegati
Grazie
-- 
Ciao
Alessandro

Ciao Alessandro,
ti posso consigliare solo una cosa: creati una mail con Outlook/Outlook 
Express/Thunderbird, salvala in un file esterno e poi vai a ricostruila 
usando VO.
Non � semplice, e non sar� uan cosa veloce. Da quando ho visto quanto 
tempo spendono le agenzie pubblicitarie per creare un newsletter (in 
maniera manuale!) in HTML non mi meraviglio pi�.
Saluti
Wolfgang

Diciamo che la cosa � abbastanza urgente, per il momento posso anche 
farne a meno, ma non vorrei neanche dedicarci troppo tempo che ne ho 
poco in questo momento.
Nel NG internazionale ho trovato un esempio ma non funziona, forse � 
associato a qualche altro programma.
Speravo che qualcuno qui ne avesse uno. Magari posto anche sull'altro NG
Grazie
Ciao
Alessandro
Wolfgang Riedmann ha scritto:


 ha scritto nel 
messaggio news:hc1855$e5s$1...@aioe.org...


 .... ï¿œ quello che sta cercando richard TR sul NG internazionale, ma non 


Ciao Alessandro,
come ti avevo scritto: la cosa migliore � di crearti una piccola mail 
con Outlook e analizzare il file generato.
l'immagine praticamente deve essere un allegato e specificata una 
content-id, 
p.es
. 
Content-type: Application/Octet-stream; name="hts_1.PNG"
Content-ID: <127585125.1256487479.17429>
Content-disposition: attachment; filename="hts_1.PNG"
Content-transfer-encoding: BASE64
Nel messaggio stesso (codice HTML) l'immagine deve poi essere inserita 
cos�:
<img src=3D"cid:127585125.1256487479.17429" width=3D"2=
08" height=3D"165" border=3D"0" alt=3D"graphic"/>
usando la content-id usata per l'allegato.
Saluti
Wolfgang

Grazie Wolfgang
le tue informazioni sembrano molto utili.
Appena ho tempo scrivo qualcosa
Ciao
Alessandro
Wolfgang Riedmann ha scritto:


Ciao Alessandro,
se usi Office Outlook: non usare la versione 2007, e se usi XP o 2003, 
disabilita Word come editor HTML. Word genera una tale schifezza di 
HTML che � da dimenticare completamente.
Sto cercando gi� da tempo un editor/visualizzatore di HTML per crearmi 
un programma di posta, ma non si trova praticamente niente che usi 
Internet Explorer.
Saluti
Wolfgang

S� conosco word e l'ho abbandonato da tempo :-)
Outlook l'ho installato la prima volta nel 94 e da allora non l'ho pi� 
voluto vedere :-P
In realt� per il momento le pagine html di cui ho avuto bisogno sono 
abbastanza semplici e le faccio a manina. Tempo fa avevo cercato 
qualcosa open source, ma non ho trovato nulla di particolarmente 
efficace e di acquistare qualcosa con l'uso che ne faccio non mi � 
sembrato il caso
Ciao
Alessandro
Wolfgang Riedmann ha scritto:


Alessandro,
beccati questo (che forse avrai giï¿œ...)
vedi se se riesci a tirarci fuori qualcosa di buono...
-------------------------------
FUNC Start
LOCAL oMail AS MyCEmail
LOCAL oSmtp AS cSmtp
LOCAL cHtml, cFstName AS STRING
LOCAL lRet AS LOGIC
oMail := MyCEmail{"Subject TEST", 
"
ema...@denis.ch
;
ema...@denis.ch
",WorkDir() + "AttachFile.zip"}
//cHtml := MemoRead(cHtmlTemplate)
cFstName := 'Denis'
cHtml := ;
[<html><head><title>Welcome message</title>]+;
[<meta http-equiv="Content-Type" content="text/html;
charset=iso-8559-1">]+;
[</head>]+;
[<body bottommargin=10 topmargin=10 background="cid:background.gif">]
+;
[<table width="100%" height="10%" border=0 cellspacing=0
cellpadding=0
cols=1 rows=3>]+;
[<tr><td valign=top height="1%">]+;
[<table ALIGN=center width="100%" border=0 cellspacing=0
cellpadding=0
cols=5>]+;
[<tr><td valign=bottom width="1%"><IMG height=37 alt="Image1"
src="cid:image1.gif" width=162></td>]+;
[<td>&nbsp;</td>]+;
[<td ALIGN=middle valign=bottom nowrap><font face=Verdana
size=5><b><FONT
color=#0000ff>TITLE</FONT>  &nbsp; </b></font></td>]+;
[<td>&nbsp;</td>]+;
[<td rowspan=2 valign=top width="1%"><IMG height=55 alt="image2"
src="cid:image2.gif" width=255  valign="top"></td>]+;
[</tr><tr><td colspan=3><hr color="navy"
size=1></td><td>&nbsp;</td></tr></table>Dear ]+cFstName+[,</td></tr></
table>]+;
[<font face=Arial size=2>]+;
[<p> &nbsp;</p>]+;
[</font></body></html>]
oMail:cHTML := cHtml
oMail:EncodeEmail()
#IFDEF __DEBUG
MemoWrit(WorkDir()+'Email Raw Text.txt', oMail:cRaw)
#ENDIF
oSmtp := cSmtp{oMail, '
smtp.denis.ch
'}
lRet := oSmtp:SendMail()
---------------------------------------------------------------------------ï¿œ---
CLASS myCEmail INHERIT CEmail
// Enhanced version that handles 3 embedded image files
// Denis Lucas, 2004
EXPORT cSubPath AS STRING
---------------------------------------------------------------------------ï¿œ---
METHOD EncodeBody() CLASS myCEmail
LOCAL lFiles, lAlternate, lCID AS LOGIC
LOCAL nFiles, nN AS DWORD
LOCAL cBuffer, cTempFile, cWorkDir, cContentType, cFile, cCharSet AS
STRING
LOCAL hIn, hOut AS PTR
LOCAL nTotalBytes AS INT
// now we determine what the primary type of email is
nFiles  := ALen(SELF:aAttachments)
lFiles  := (nFiles > 0)
lAlternate := (SLen(SELF:cHTML) > 0)
// lazy way to search whether the HTML message contains any embedded image 
files
lCID := Instr("cid:", SELF:cHTML)
SELF:Boundary  := "===DL_BOUNDARY==="
SELF:SubBoundary := "=DL_SUB_BOUNDARY="
cCharSet   := '"us-ascii"'
cBuffer := 'Mime-Version: 1.0' + CRLF
cBuffer += 'X-Mailer: ' + __APPLICATION__ + CRLF
cBuffer += 'X-Info: some information' + CRLF
cBuffer += 'X-Author: Denis Lucas' + CRLF
cBuffer += 'Content-type: '
DO CASE
CASE lCID .and. !lFiles
cBuffer += 'Multipart/Related; boundary="' + SELF:Boundary + '";
type="multipart/alternative"' + CRLF
cBuffer += CRLF + "This is a multi-part message in MIME format." +
CRLF +
CRLF
// Add the text and HTML in their own part
cBuffer += ATTACH_BEGIN + SELF:Boundary + CRLF
cBuffer += 'Content-Type: multipart/alternative;' + CRLF
cBuffer += '     boundary="' + SELF:SubBoundary + '"' + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + CRLF
cBuffer += 'Content-Type: text/plain;' + CRLF
cBuffer += '     charset=' + cCharSet + CRLF
cBuffer += 'Content-Transfer-Encoding: 7bit' + CRLF + CRLF
cBuffer += SELF:cText + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + CRLF
cBuffer += 'Content-Type: text/html;' + CRLF
cBuffer += '     charset=' + cCharSet + CRLF
cBuffer += 'Content-Transfer-Encoding: 7bit' + CRLF + CRLF
cBuffer += SELF:cHTML + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + ATTACH_BEGIN + CRLF
// end of mixed alternate parts
// attach the CIDs in subsequent parts
cTempFile := GetTempFilePath() + 'MailOut.txt'
cWorkDir := WorkDir() + SELF:cSubPath
nFiles := ALen(SELF:aContentID)
FOR nN := 1 UPTO nFiles
cFile   := SELF:aContentID[nN]
cContentType := GetMimeType(cFile)
IF SLen(cContentType) = 0
cContentType := "application/octet-stream"
ENDIF
cBuffer += ATTACH_BEGIN + SELF:Boundary + CRLF
cBuffer += 'Content-Type: ' + cContentType + ';' + CRLF
cBuffer += '     name="' + cFile + '"' + CRLF
cBuffer += 'Content-transfer-encoding: base64' + CRLF
cBuffer += 'Content-ID: <' + cFile + '>' + CRLF
hOut := FCreate(cTempFile)
IF hOut != F_ERROR
hIn := FOpen(cWorkDir + cFile, FO_READ)
IF hIn != F_ERROR
nTotalBytes := EncodeBase64(hIn, hOut)
//cError := ""
//Attachment := Base64EncodeFileEx(cFileName, @cError)
//
//TextBox{,"Encode", "Bytes Encoded: " + AsString(nTotalBytes)}:Show
()
FClose(hIn)
ENDIF
FClose(hOut)
ENDIF
cBuffer += CRLF + MemoRead(cTempFile) + CRLF
FErase(cTempFile)
NEXT
cBuffer += ATTACH_BEGIN + SELF:Boundary + ATTACH_BEGIN + CRLF // end of 
mixed parts
CASE lFiles .and. lAlternate .and. !lCID
cBuffer += 'multipart/mixed;' + CRLF
cBuffer += '     boundary="' + SELF:Boundary + '"' + CRLF
cBuffer += CRLF + "This is a multi-part message in MIME format." +CRLF +CRLF
// Add the text and HTML in their own part
cBuffer += ATTACH_BEGIN + SELF:Boundary + CRLF
cBuffer += 'Content-Type: multipart/alternative;' + CRLF
cBuffer += '     boundary="' + SELF:SubBoundary + '"' + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + CRLF
cBuffer += 'Content-Type: text/plain;' + CRLF
cBuffer += '     charset="us-ascii"' + CRLF
cBuffer += 'Content-Transfer-Encoding: 7bit' + CRLF + CRLF
cBuffer += SELF:cText + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + CRLF
cBuffer += 'Content-Type: text/html;' + CRLF
cBuffer += '     charset="us-ascii"' + CRLF
cBuffer += 'Content-Transfer-Encoding: 7bit' + CRLF + CRLF
cBuffer += SELF:cHTML + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + ATTACH_BEGIN + CRLF
//end OF mixed alternate parts
// attach the attachments in subsequent parts
FOR nN := 1 UPTO nFiles
cBuffer += ATTACH_BEGIN + SELF:Boundary + CRLF
cBuffer += SELF:aAttachHeaders[nN]+ CRLF + CRLF
cBuffer += SELF:aAttachments[nN]
cBuffer += CRLF
NEXT
cBuffer += ATTACH_BEGIN + SELF:Boundary + ATTACH_BEGIN + CRLF
// end of mixed parts
// HTML, CIDs and attachments
CASE lFiles .and. lAlternate .and. lCID
cBuffer += 'multipart/mixed;' + CRLF
cBuffer += '     boundary="' + SELF:Boundary + '"' + CRLF
cBuffer += CRLF + "This is a multi-part message in MIME format." +CRLF +CRLF
// Add the text and HTML in their own part
cBuffer += ATTACH_BEGIN + SELF:Boundary + CRLF
cBuffer += 'Content-Type: multipart/alternative;' + CRLF
cBuffer += '     boundary="' + SELF:SubBoundary + '"' + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + CRLF
cBuffer += 'Content-Type: text/plain;' + CRLF
cBuffer += '     charset="us-ascii"' + CRLF
cBuffer += 'Content-Transfer-Encoding: 7bit' + CRLF + CRLF
cBuffer += SELF:cText + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + CRLF
cBuffer += 'Content-Type: text/html;' + CRLF
cBuffer += '     charset="us-ascii"' + CRLF
cBuffer += 'Content-Transfer-Encoding: 7bit' + CRLF + CRLF
cBuffer += SELF:cHTML + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + ATTACH_BEGIN + CRLF
// end OF mixed alternate parts
// attach the attachments in subsequent parts
FOR nN := 1 UPTO nFiles
cBuffer += ATTACH_BEGIN + SELF:Boundary + CRLF
cBuffer += SELF:aAttachHeaders[nN]+ CRLF + CRLF
cBuffer += SELF:aAttachments[nN]
cBuffer += CRLF
NEXT
// attach the CIDs in subsequent parts
cTempFile := GetTempFilePath() + 'MailOut.txt'
cWorkDir := WorkDir() + SELF:cSubPath
nFiles := ALen(SELF:aContentID)
FOR nN := 1 UPTO nFiles
cFile   := SELF:aContentID[nN]
cContentType := GetMimeType(cFile)
IF SLen(cContentType) = 0
cContentType := "application/octet-stream"
ENDIF
cBuffer += ATTACH_BEGIN + SELF:Boundary + CRLF
cBuffer += 'Content-Type: ' + cContentType + ';' + CRLF
cBuffer += '     name="' + cFile + '"' + CRLF
cBuffer += 'Content-transfer-encoding: base64' + CRLF
cBuffer += 'Content-ID: <' + cFile + '>' + CRLF
hOut := FCreate(cTempFile)
IF hOut != F_ERROR
hIn := FOpen(cWorkDir + cFile, FO_READ)
IF hIn != F_ERROR
nTotalBytes := EncodeBase64(hIn, hOut)
FClose(hIn)
ENDIF
FClose(hOut)
ENDIF
cBuffer += CRLF + MemoRead(cTempFile) + CRLF
FErase(cTempFile)
NEXT
cBuffer += ATTACH_BEGIN + SELF:Boundary + ATTACH_BEGIN + CRLF
// end of mixed parts
CASE lFiles
// attachments but text only message
cBuffer += 'multipart/mixed;' + CRLF
cBuffer += '     boundary="' + SELF:Boundary + '"' + CRLF
cBuffer += CRLF + "This is a multi-part message in MIME format." +CRLF +CRLF
cBuffer += ATTACH_BEGIN + SELF:Boundary + CRLF
cBuffer += 'Content-Type: text/plain;' + CRLF
cBuffer += '     charset="us-ascii"' + CRLF
cBuffer += 'Content-Transfer-Encoding: 7bit' + CRLF + CRLF
cBuffer += SELF:cText + CRLF + CRLF
// attach the attachments
FOR nN := 1 UPTO nFiles
cBuffer += ATTACH_BEGIN + SELF:Boundary + CRLF
cBuffer += SELF:aAttachHeaders[nN]+ CRLF + CRLF
cBuffer += SELF:aAttachments[nN]
cBuffer += CRLF
NEXT
cBuffer += ATTACH_BEGIN + SELF:Boundary + ATTACH_BEGIN + CRLF
// end of mixed parts
CASE lAlternate
// no attachments but HTML and text
cBuffer += 'multipart/alternative;' + CRLF
cBuffer += '     boundary="' + SELF:SubBoundary + '"' + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + CRLF
cBuffer += 'Content-Type: text/plain;' + CRLF
cBuffer += '     charset="us-ascii"' + CRLF
cBuffer += 'Content-Transfer-Encoding: 7bit' + CRLF + CRLF
cBuffer += SELF:cText + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + CRLF
cBuffer += 'Content-Type: text/html;' + CRLF
cBuffer += '     charset="us-ascii"' + CRLF
cBuffer += 'Content-Transfer-Encoding: 7bit' + CRLF + CRLF
cBuffer += SELF:cHTML + CRLF + CRLF
cBuffer += ATTACH_BEGIN + SELF:SubBoundary + ATTACH_BEGIN + CRLF
// end OF mixed alternate parts
OTHERWISE
// text only and no attachments
cBuffer += 'text/plain;' + CRLF
cBuffer += '     charset="us-ascii"' + CRLF
cBuffer += 'Content-Transfer-Encoding: 7bit' + CRLF + CRLF
cBuffer += SELF:cText+CRLF
ENDCASE
cBuffer += CRLF
RETURN cBuffer
---------------------------------------------------------------------------ï¿œ---
METH Init(cSubject, cDestList, cAttach) CLASS myCEmail
SUPER:Init()
SELF:cDestList  := StrTran(cDestList, ',', ';')
SELF:FromName  := __APPLICATION__
SELF:FromAddress := "
d...@denis.ch
"
SELF:cSubPath  := ""
SELF:cText   := "My plain text"
SELF:cSubject  := cSubject
// WARNING: call EncodeAttachement() before you assign
self:aContentID
IF !IsNil(cAttach)
SELF:EncodeAttachment(cAttach)
ENDIF
SELF:aContentID  := {"background.gif","image1.gif","image2.gif"}

Uff, 3 ore che cerco di mandare questo messaggio, ma il server mi da
problemi: oggi non ï¿œ giornata ...
Si ï¿œ quello che ho trovato anche io, ma sembra fare 3000 riferimenti ad
altro e l'ho temporaneamente archiviato: sarï¿œ comunque spunto per il mio
lavoro.
Grazie comunque
Ciao
Alessandro
Massimo Bighelli ha scritto:


 ha scritto nel 
messaggio news:hc4idq$jfg$1...@aioe.org...


certo: devo anche dire che ho fatto tutto molto velocemente, quindi 
qualcosa posso aver dimenticato o sbagliato: a te si compila?
Teoricamente ï¿œ un esempio che dovrebbe funzionare (ha uno start etc)


 ha scritto nel 
messaggio news:hc4v69$4nc$1...@aioe.org...


 


> per ora mi sto inc... ando con server2008
Io lo uso giï¿œ da tempo e va una meraviglia, soprattutto in confronto al 
2003!
Bye.
                        Francesco 

 ha scritto nel 
messaggio news:hc4v69$4nc$1...@aioe.org...


 


 ha scritto nel 
messaggio news:hc1855$e5s$1...@aioe.org...


 contento che non ci fossero le immagini
a questo punto: crea la mail con Outlook o Thunderbird o con quale programma 
vuoi, e spedisci il file direttamente con le classi SMTP.
Saluti
Wolfgang

 Perchï¿½ non glielo fai fare con outlook e poi via OLE non te lo ribecchi e 


 .... magari il contenuto "grafico" della mail ï¿½ legato ai dati del 


 ha scritto nel messaggio 
news:4ae6cd9b$0$1113$4faf...@reader2.news.tin.it...


 ha scritto nel messaggio 
news:4aeb4582$0$1101$4faf...@reader3.news.tin.it...
