HBTIP
Moderator: Rathinagiri
- Roberto Lopez
- HMG Founder
- Posts: 4004
- Joined: Wed Jul 30, 2008 6:43 pm
HBTIP
Hi All,
Does any know if is possible to send html email with image embedded using HBTIP Harbour contribution library?
TIA.
Regards,
Roberto.
Does any know if is possible to send html email with image embedded using HBTIP Harbour contribution library?
TIA.
Regards,
Roberto.
Regards/Saludos,
Roberto
(Veritas Filia Temporis)
Roberto
(Veritas Filia Temporis)
- esgici
- Posts: 4543
- Joined: Wed Jul 30, 2008 9:17 pm
- DBs Used: DBF
- Location: iskenderun / Turkiye
- Contact:
Re: HBTIP
Hi all
This is a tantalus-torture (*)
We have a huge treasure under our hands and we can't utilize in satisfy it because lack of documentation
Regards
(*) Read definition
--
esgici
This is a tantalus-torture (*)
We have a huge treasure under our hands and we can't utilize in satisfy it because lack of documentation
Regards
(*) Read definition
--
esgici
Viva INTERNATIONAL HMG
- Roberto Lopez
- HMG Founder
- Posts: 4004
- Joined: Wed Jul 30, 2008 6:43 pm
Re: HBTIP
Tantalus story is terrible... perhaps this is a little less 'dramatic'esgici wrote:Hi all
This is a tantalus-torture (*)
We have a huge treasure under our hands and we can't utilize in satisfy it because lack of documentation
Regards
(*) Read definition
--
esgici
Regards,
Roberto.
Regards/Saludos,
Roberto
(Veritas Filia Temporis)
Roberto
(Veritas Filia Temporis)
- Rathinagiri
- Posts: 5471
- Joined: Tue Jul 29, 2008 6:30 pm
- DBs Used: MariaDB, SQLite, SQLCipher and MySQL
- Location: Sivakasi, India
- Contact:
Re: HBTIP
In our language, there is a saying, "There is no peeled banana."
East or West HMG is the Best.
South or North HMG is worth.
...the possibilities are endless.
South or North HMG is worth.
...the possibilities are endless.
- Rathinagiri
- Posts: 5471
- Joined: Tue Jul 29, 2008 6:30 pm
- DBs Used: MariaDB, SQLite, SQLCipher and MySQL
- Location: Sivakasi, India
- Contact:
Re: HBTIP
I think we have to use -m option in the following sample given in tipmmail.prg. I am sure, you might have checked this already. I had not compiled and tested though.
Code: Select all
/*
* $Id: tipmmail.prg 8751 2008-06-19 00:02:50Z vszakats $
*/
/******************************************
* TIP test
* Mail - reading and writing multipart mails
*
* Creating a mail message.
* This will create a valid mail message, using
* the set of files given in the command line.
*
* Usage:
* testmmail [options] attachment1, attachment2...
* options:
* -h Help
* -f "from" Set "mail from" field
* -t "to" Set "mail to" field
* -s "subject" Set mail subject
* -b "body" Set mail body (or message)
* -m "bodyfile" Set mail body using a file
*
*
* This test writes data to standard output, and is
* compiled only under GTCGI;
*****/
PROCEDURE MAIN( ... )
LOCAL oMail, cData, i, oAttach
LOCAL cFname, cFExt
IF PCount() == 0
Usage()
QUIT
ENDIF
oMail := TipMail( "This is the body of the mail" )
oMail:hHeaders[ "Content-Type" ] := "text/plain; charset=iso8851"
oMail:hHeaders[ "Date" ] := Tip_Timestamp()
i := 1
DO WHILE i < PCount()
cData := hb_PValue(i)
IF lower( cData ) == "-h"
Usage()
QUIT
ENDIF
IF lower( cData ) == "-f"
i++
cData := hb_PValue(i)
IF cData != NIL
oMail:hHeaders[ "From" ] := cData
ENDIF
ELSEIF lower( cData ) == "-t"
i++
cData := hb_PValue(i)
IF cData != NIL
oMail:hHeaders[ "To" ] := cData
ENDIF
ELSEIF lower( cData ) == "-s"
i++
cData := hb_PValue(i)
IF cData != NIL
oMail:hHeaders[ "Subject" ] := cData
ENDIF
ELSEIF lower( cData ) == "-b"
i++
cData := hb_PValue(i)
IF cData != NIL
oMail:SetBody( cData + e"\r\n" )
ENDIF
ELSEIF lower( cData ) == "-m"
i++
cData := hb_PValue(i)
IF cData != NIL
cData := Memoread( cData )
IF Empty(cData)
? "FATAL: Can't read", hb_PValue(i)
QUIT
ENDIF
oMail:SetBody( cData + e"\r\n")
ENDIF
ELSE // it is an attachment file
cData := Memoread( cData )
IF Empty(cData)
? "FATAL: Can't read attachment", hb_PValue(i)
QUIT
ENDIF
oAttach := TipMail():New()
oAttach:SetEncoder( "base64" )
//TODO: mime type magic auto-finder
HB_FNameSplit( hb_PValue(i),,@cFname, @cFext )
// Some EMAIL readers use Content-Type to check for filename
oAttach:hHeaders[ "Content-Type" ] := ;
"application/X-TIP-Attachment; filename=";
+ cFname + cFext
// But usually, original filename is set here
oAttach:hHeaders[ "Content-Disposition" ] := ;
"attachment; filename=" + cFname + cFext
oAttach:SetBody( cData )
oMail:Attach( oAttach )
ENDIF
i++
ENDDO
/* Writing stream */
FWrite( 1, oMail:ToString() )
RETURN
PROCEDURE Usage()
? "Usage:"
? "testmmail [options] attachment1, attachment2..."
? " options:"
? " -h Help"
? ' -f "from" Set "mail from" field'
? ' -t "to" Set "mail to" field'
? ' -s "subject" Set mail subject'
? ' -b "body" Set mail body (or message)'
? ' -m "bodyfile" Set mail body using a file'
?
?
RETURN
East or West HMG is the Best.
South or North HMG is worth.
...the possibilities are endless.
South or North HMG is worth.
...the possibilities are endless.
- Roberto Lopez
- HMG Founder
- Posts: 4004
- Joined: Wed Jul 30, 2008 6:43 pm
Re: HBTIP
Yes, but it does not provide information about how the connection is established.rathinagiri wrote:I think we have to use -m option in the following sample given in tipmmail.prg. I am sure, you might have checked this already. I had not compiled and tested though.
I've found in hbtip files 'sendmail.prg' it has a function 'hb_sendmail' and I've made it work.
It allows to send html messages and you can attach files, but the problem is how to relate an attached images with html body.
Regards,
Roberto.
Regards/Saludos,
Roberto
(Veritas Filia Temporis)
Roberto
(Veritas Filia Temporis)
-
- Posts: 245
- Joined: Sat Aug 02, 2008 5:03 pm
Re: HBTIP
Did you try with Mht files ( all in there ) instead of Htm ?
Regards/Saludos, Carlos (bcd12a)
- Rathinagiri
- Posts: 5471
- Joined: Tue Jul 29, 2008 6:30 pm
- DBs Used: MariaDB, SQLite, SQLCipher and MySQL
- Location: Sivakasi, India
- Contact:
Re: HBTIP
This is from another forum. I don't know if it helps you or not.
how to embed image in HTML ?
Depends on how you're trying to do it, but your mail composing program will need a way to send multipart/mime messages. The image is converted to base64 and the data sent by the mailer looks something like:
Note how the HTML code in the first part includes <img src="cid:foo.." the CID means that it's to look in another part of the multipart message.
From: http://www.htmlcodetutorial.com/help/sutra42473.html
how to embed image in HTML ?
Depends on how you're trying to do it, but your mail composing program will need a way to send multipart/mime messages. The image is converted to base64 and the data sent by the mailer looks something like:
Code: Select all
From: foo1atbar.net
To: foo2atbar.net
Subject: A simple example
Mime-Version: 1.0
Content-Type: multipart/related; boundary="boundary-example"; type="text/html"
--boundary-example
Content-Type: text/html; charset="US-ASCII"
... text of the HTML document, which might contain a URI
referencing a resource in another body part, for example
through a statement such as:
<IMG SRC="cid:foo4atfoo1atbar.net" ALT="IETF logo">
--boundary-example
Content-Location: CID:somethingatelse ; this header is disregarded
Content-ID: <foo4atfoo1atbar.net>
Content-Type: IMAGE/GIF
Content-Transfer-Encoding: BASE64
R0lGODlhGAGgAPEAAP/////ZRaCgoAAAACH+PUNv
cHlyaWdodCAoQykgMTk5LiBVbmF1dGhvcml6ZWQgZHV
wbGljYXRpb24gcHJvaGliaXRlZC4A etc...
--boundary-example--
From: http://www.htmlcodetutorial.com/help/sutra42473.html
East or West HMG is the Best.
South or North HMG is worth.
...the possibilities are endless.
South or North HMG is worth.
...the possibilities are endless.
- Roberto Lopez
- HMG Founder
- Posts: 4004
- Joined: Wed Jul 30, 2008 6:43 pm
Re: HBTIP
Thanks, it appears to be useful.rathinagiri wrote:This is from another forum. I don't know if it helps you or not.
how to embed image in HTML ?
Depends on how you're trying to do it, but your mail composing program will need a way to send multipart/mime messages. The image is converted to base64 and the data sent by the mailer looks something like:
Note how the HTML code in the first part includes <img src="cid:foo.." the CID means that it's to look in another part of the multipart message.Code: Select all
From: foo1atbar.net To: foo2atbar.net Subject: A simple example Mime-Version: 1.0 Content-Type: multipart/related; boundary="boundary-example"; type="text/html" --boundary-example Content-Type: text/html; charset="US-ASCII" ... text of the HTML document, which might contain a URI referencing a resource in another body part, for example through a statement such as: <IMG SRC="cid:foo4atfoo1atbar.net" ALT="IETF logo"> --boundary-example Content-Location: CID:somethingatelse ; this header is disregarded Content-ID: <foo4atfoo1atbar.net> Content-Type: IMAGE/GIF Content-Transfer-Encoding: BASE64 R0lGODlhGAGgAPEAAP/////ZRaCgoAAAACH+PUNv cHlyaWdodCAoQykgMTk5LiBVbmF1dGhvcml6ZWQgZHV wbGljYXRpb24gcHJvaGliaXRlZC4A etc... --boundary-example--
From: http://www.htmlcodetutorial.com/help/sutra42473.html
I'll review it.
Anyway, I've solved the problem via the 'hard way'.
I've created the message using Outlook, saving it in '.eml' format, and then programmatically doing changes required in that file for different situations.
Very hard, but works...
Regards,
Roberto.
Regards/Saludos,
Roberto
(Veritas Filia Temporis)
Roberto
(Veritas Filia Temporis)