FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » CLP - ON TOPIC! - Need PHP form email help, Please!
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: CLP - ON TOPIC! - Need PHP form email help, Please! [message #173144 is a reply to message #173142] Thu, 24 March 2011 10:17 Go to previous message
The Natural Philosoph is currently offline  The Natural Philosoph
Messages: 993
Registered: September 2010
Karma:
Senior Member
crankypuss wrote:
> The Natural Philosopher <tnp(at)invalid(dot)invalid> wrote:
>
>> Tim wrote:
>>> In article <imbdle$g3p$1(at)news(dot)eternal-september(dot)org>, Jerry Stuckle
>>> <jstucklex(at)attglobal(dot)net> wrote:
>>>
>>>> On 3/22/2011 7:11 PM, Tim wrote:
>>>> > In article<im9v9g$jj9$1(at)news(dot)eternal-september(dot)org>, Jerry Stuckle
>>>> > <jstucklex(at)attglobal(dot)net> wrote:
>>>> >
>>>> >> On 3/22/2011 12:03 AM, Tim wrote:
>>>> >>> In article<im93gr$8bp$1(at)news(dot)eternal-september(dot)org>, Jerry Stuckle
>>>> >>> <jstucklex(at)attglobal(dot)net> wrote:
>>>> >>>
>>>> >>>> On 3/21/2011 6:31 PM, Tim wrote:
>>>> >>>>> I have a form in which the user can upload a photo, which is then sent
>>>> >>>>> to me along with the other data on the form. I have formatted the data
>>>> >>>>> into an HTML email with the photo attached. I would like the photo
>>>> >>>>> embedded in a specific place on the page, but I have not found the code
>>>> >>>>> to do this and don't know enough about it to write the code myself.
>>>> >>>>>
>>>> >>>>> It would also be nice to be able to have the photo, once uploaded, to
>>>> >>>>> replace the upload button and associated text on the page in the place
>>>> >>>>> I want the photo to appear. Then maybe send the page as is as an HTML
>>>> >>>>> email?
>>>> >>>>>
>>>> >>>>> Any help would be appreciated.
>>>> >>>> And your PHP question is?
>>>> >>>>
>>>> >>>> Sounds more like you need to learn how to format the email correctly,
>>>> >>>> which is an email/HTML question. Try a more appropriate newsgroup
>>>> >>>> (maybe alt.html - I don't know).
>>>> >>> The problem is not formatting the email, the problem is getting the php
>>>> >>> to take the image, whose name I can't know, and embedding it into the
>>>> >>> email. The php code constructs the email using my template and the data
>>>> >>> input by the user. Since I don't know the name of the file, and it is
>>>> >>> stored in a temp directory, I need the code that will place the image
>>>> >>> where I want it. In other words: it needs to convert the filename into
>>>> >>> the appropriate "<img src" html.
>>>> >>>
>>>> >>> I'm sure this seems very simple to all the code gurus, but I have found
>>>> >>> nothing that even comes close to this in any of the tutorials I have
>>>> >>> read.
>>>> >>>
>>>> >>> I have thought about saving the images to a permanent directory and
>>>> >>> changing the name to make the html easier, but there are several
>>>> >>> reasons to keep the original name and I don't want to keep the images
>>>> >>> on the server. So I need some php to assemble the html using unknown
>>>> >>> values.
>>>> >>>
>>>> >>> So far I have the image attached to the email, but not embedded. My
>>>> >>> attempt at embedding it resulted in the filename being displayed where
>>>> >>> the image should be. So it is not just a matter of html formatting.
>>>> >> Well, you've got the image in the email; all you need is to get it to
>>>> >> work with the html. You already have the file name, etc - or you
>>>> >> wouldn't have been able to attack it to the email.
>>>> >>
>>>> >> So, what is the result you want? Not something nebulous such as
>>>> >> "convert the filename into the appropriate"<img src" html" - EXACTLY
>>>> >> what do you want? I.e. if I send you example.jpg, what does the
>>>> >> resultant raw html in your email look like?
>>>> >>
>>>> >> Once you can answer that, your PHP code is easy.
>>>> > OK. To be more clear, I have a form in which the user fills in some
>>>> > information and uploads a headshot. the email is formatted the same as
>>>> > the form except I want the image to appear next to the information
>>>> > instead of attached. The info is down the left side and the image on
>>>> > the right. There is more info under all of that.
>>>> >
>>>> > I used Forms to Go to create the original form handler. The id for the
>>>> > image is $FTGheadshot. Simply placing that into the html output section
>>>> > (like this: headshot : $FTGheadshot<br />) just gets me the file's name
>>>> > in the space for the image.
>>>> >
>>>> > Looking at the code, now that I have learned a little more about it, I
>>>> > am thinking that I should put this: $_FILES['headshot']['tmp_name']
>>>> > there instead. Would that be right? Isn't that the part that connects
>>>> > the actual file with the FTG assigned variable?
>>>> >
>>>> > Previously it said: $FTGheadshot = $_FILES['headshot']['name'];
>>>> >
>>>> > Am I on the right track with this?
>>>> No, you're not, and creating an html email with embedded images is not
>>>> easy - but it is NOT a PHP question.
>>>>
>>>> First of all you need to figure out how to create the email in the first
>>>> place. Then you can worry about the PHP code needed to create it.
>>>>
>>>> Get a working page in your favorite email program first and see what the
>>>> source looks like. That will help you.
>>>>
>>>> Right now you're trying to create something with no idea what you're
>>>> creating. You can keep using trial and error methods and maybe get
>>>> there. Or you can do as I first suggested and find out how to create
>>>> the email you want first, ignoring any language considerations.
>>> I looked at an email with images both attached and embedded: the same
>>> images in both. The line that placed the image inline looks like this:
>>>
>>> <IMG=20
>>> id=3DMA2.1289279864 border=3D0=20
>>> =
>>> src=3D"cid:4EDBE5C8B2CC44F8ADDD6F853B321989@desktop619"=20
>>> width=3D480 height=3D604=20
>>> =
>>> DATASIZE=3D"144908">
>>>
>>> Where "cid:4EDBE5C8B2CC44F8ADDD6F853B321989@desktop619" is the Content
>>> ID. Obviously this is something that is compiled by the email program
>>> when the email is sent. Since HTML can not create itself, I need some
>>> code to do it.
>>>
>> So write it.
>>
>> You also need to look at the mail *headers*. Beause thats where the
>> parts are defined so that "cid:4EDBE5C8B2CC44F8ADDD6F853B321989@desktop619"
>> actually means something.
>>
>>
>>
>>> I have created the email, as I said, and it works perfectly other than
>>> this image issue. The source for the emails from this form look like
>>> this:
>>>
>> Ok, Not sure if this works or not.
>>
>> Create a message body as HTML and include in it, this
>>
>> <img width= "480" src="cid:Logo2.gif" alt="logo"> where you want the
>> picture.
>>
>> Now here is my function to create a multipart mime message and send it.
>> De wrap it because the exact syntax of the headers is crucial
>>
>> Pass a proper HTML page to it, as $body but don't get smart. Outlook
>> understands Tables, but not Divs.
>>
>> I think this more or less works: it should serve as a starting point anyway.
>>
>> function mail_html_file($email, $subject,$from,$return_path,$body)
>> {
>>
>> $attach=
>> chunk_split(base64_encode(file_get_contents('../Images/Logo2.gif')));
>> $boundary = md5( time() );
>>
>> $headers = sprintf("From: %s\nMIME-Version: 1.0\nContent-Type:
>> multipart/related; boundary=\"%s\"",
>> $from, $boundary);
>>
>> $message = sprintf("--%s\nContent-Type: text/html;
>> charset=\"iso-9959-1\"\nContent-Transfer-Encoding:
>> quoted-printable\n\n%s\n\n--%s\nContent-Type: Image/gif;
>> name=\"Logo.gif\"\nContent-ID: <Logo2.gif>\nContent-Transfer-Encoding:
>> base64\n\n%s\n\n--%s--\n",
>> $boundary,$body,$boundary,$attach,$boundary);
>> mail($email, $subject, $message, $headers, "-f ".$return_path );
>> }
>
> Nobody seems to have mentioned yet that embedding images (especially
> large images) in emails is just plain rude. If the image exists on
> the web and you're sending an html email then use the image from the
> web. That way the recipient won't have to sit and wait while your
> (potentially) multi-megabyte image (that the recipient may not even
> want to see) is downloaded. Not everyone enables html in their email
> client, and for those who don't you're just wasting their bandwidth.
>

I didn't mention it, because its context dependent. You cant make such a
blanket statement.

IF the image is an intrinsic part of what you are communicating, it has
to be downloaded anyway, assuming the customer or whatever wants the
email at all.

If they don't want it, or the image is not vital, one questions why you
are sending the email at all.

And my replies to technical questions seldom question the morality of
the person asking: Just possibly their technical approach.

In short, its none of my business.
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: ip address of client
Next Topic: Islandnet.com dropping support for PHP4
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Fri Nov 22 15:54:25 GMT 2024

Total time taken to generate the page: 0.03916 seconds