|
| php html mail billeder! Fra : henrik2008 | Vist : 1349 gange 100 point Dato : 23-01-12 23:13 |
|
php mail med billeder
hej, er der nogle der gider at hjælpe mig med php mail ?
jeg har lavet et lille nyedsbrev system med php og mysql
jeg bruger tinymce (fantastisk, de er bare så godt!)
alt viker, næsten da.
jeg kan sende email med html indhold farver /fonte osv, men ikke
billeder vedhæftet filer (det skal være sådan at man se
emails med billeder der vises i selve emailen).
jeg bruger headers med html og php file_get conents og bounderies.
nu siger cliche (cliche web hosting!), " file get url disabled".
jeg har kigget på cliche serveren med phpinfo(), der står
allowurl=off, dvs. at cliche ikke undersøtter file get contents!.
cliche understøtter vistnok cURL file get contents.
jeg har prøvet med file atacments i headers og mail body delen og php file read file, men intet virker, stadigvæk samme error!.
her er mit script.
<?PHP
$File = " http://minadresse/ (...)
$fh = fopen($File, 'r');
$theData = fgets($fh);
fclose($fh);
$to = 'minemail@yahoo.dk';
$subject = 'PHP Mail Attachment Test';
$bound_text = "test1234";
$bound = "--".$bound_text."\r\n";
$bound_last = "--".$bound_text."--\r\n";
$headers = "From: minemail@yahoo.dk\r\n";
$headers .= "MIME-Version: 1.0\r\n"
."Content-Type: multipart/mixed; boundary=\"$bound_text\"";
$header .= "Content-Type: application/octet-stream; name=\"".$theData."\"\r\n";
$message .= "hvis du kan se denne tekst, understøtter din mail client ikke MIME types!\r\n"
.$bound;
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n"
."Content-Transfer-Encoding: 7bit\r\n\r\n"
."hej <b>hejsa </b> her er mit billed\r\n"
.$bound;
$message .= "Content-Type: image/jpg; name=\"".$theData."\r\n"
."Content-Transfer-Encoding: base64\r\n"
."Content-disposition: attachment; file=\"kontaktpic.jpg\"\r\n"
."\r\n"
.chunk_split(base64_encode($file))
.$bound_last;
if(mail($to, $subject, $message, $headers))
{
echo 'email sendt';
} else {
echo 'fejl, email ikke sendt';
}
?>
er der ikke en meget nemmere måde at vise billeder på i emails, enten med img searh, eller direkte at placere den vedhæftet fil/billed i headeren ?.
| |
| Kommentar Fra : stone47 |
Dato : 24-01-12 08:23 |
|
Hej Henrik
du kan da også blive ved hej hej.
jeg skal læse lidt på det!!.
Selv øver jeg lidt på at få en webmail til at virke: Roundcube.
http://stoneplace.dk:1080/RC
Måske du kan se hvad de gør.
hilsen Steen
| |
|
ok, en nærmere forklaring, jeg har prøvet at lave et fuldt cms næsten på højdte med joomla, bare langt mere skrabet og enkelt men alligevel ret godt, hvis jeg selv skal sige det.
der er artikel styring, altså en artikel editor der bliver gemt i databasen, med opdater og slet.
der er udviklet en media manager med upload af filer og sletning af filer, der er udviklet nyhedsbrev
(ikke færdig endnu!), plus admin login, system setting, preview af artikler, email kontakt form, skabeloner til hjemmeside, bruger login med cookie huskmig, htacess login med bruger download af
billeder osv (htacess takket være dig stone47). alt sammen virker perfekt.
nu mangler jeg bare nyhedsbrevet med billeder.
æhh og kunde kartotek og brugeroversigt, skabelon creator, webshop, plus tidstyring af artikler og en del andet, så er mit cms også 100% færdig. (jaa, det er vist nok lige voldsomt at kaste sig ud i så et voldsomt projekt, men der er rigtig sjovt!).
nej mit cms er ikke til kommercielt, jeg ved ikke hvad planen er. (cmsèt er stadig under test fasen!).
jeg skal nok give noget kode tilbage til jer der ude på kandu, hvis nogen der kan bruge det!.
| |
|
og mit cms indholder rigtig flot grafik, det tog mig næsten 6 måneder at udvikle.
(tænk en gang jeg måtte skrive dele af systemet igen, fordi en hacker inficeret min pc med virus og jeg havde ikke backup af kilde koden overhovedet!(det har jeg nu, lagt på dvd!).
| |
|
virus fjernet, det er langt tid siden. alt ok.
| |
|
cliche understøtter file_get contents (eller hvad den nu hedder!) i form af cULR library med cURL
get_contents, det har jeg lige fået at vide fra Cliche.
hæ, hæ nu har jeg fået min egen webhotel plads med rigtig domain navn. (webhotellet understøtter php mysql osv).
| |
|
Hej stone47, jeg fandt et php script med cURL måske kunne du prøve det til din emails (og jer andre).
cURL funktionen skulle erstatte get_file contents og derved undgår man at bruge og få problemer med ALLOW URL error pga. den er slå fra hos mange host server.
$file= " http://ditdomain/kon.jpg";
//Initialize the Curl session
$ch = curl_init();
//Set curl to return the data instead of printing it to the browser.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Set the URL
curl_setopt($ch, CURLOPT_URL, $file);
//Execute the fetch
$data = curl_exec($ch);
//Close the connection
curl_close($ch);
øhh, $data skal vel være der hvor data er lokaseret med ref. med $file= path.
jeg tror at variablen $data skal være i headeren ?
jeg har ikke rigitig prøvet cURL scriptet, så jeg ved ikke om det virker.
| |
|
nu virker det, her er scriptet. (har prøvet i yahoo.dk mail!) der bliver billedet som skal placere på
ens egen server eller webhotel, vedhæftet i malien og yagoo mailen (den som man har sendt mailen til)kan vise billedet i selve mailen.
hvis man prøver at download billedet fra mailen, mangler billedet filen pludselig fil extensione .jpg, men der er sikkert mig der har lavet en fejl, sikkeert er det fordi jeg ikke skal putte variablen $data i headeren overhovedet ? (fixer det meget snart!).
script
<?PHP
$file= " http://dit-domain/ditbilled.jpg";
//Initialize the Curl session
$ch = curl_init();
//Set curl to return the data instead of printing it to the browser.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Set the URL
curl_setopt($ch, CURLOPT_URL, $file);
//Execute the fetch
$data = curl_exec($ch);
//Close the connection
curl_close($ch);
$to = 'din email';
$subject = 'PHP Mail Attachment Test';
$bound_text = "test234";
$bound = "--".$bound_text."\r\n";
$bound_last = "--".$bound_text."--\r\n";
$headers = "From: blaaa@yahoo.dk\r\n";
$headers .= "MIME-Version: 1.0\r\n"
."Content-Type: multipart/mixed; boundary=\"$bound_text\"";
$header .= "Content-Type: application/octet-stream; name=\"ditbilled.jpg"."\"\r\n";
$message .= "hvis du kan se denne tekst, understøtter din mail client ikke MIME types!\r\n"
.$bound;
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n"
."Content-Transfer-Encoding: 7bit\r\n\r\n"
."blaaaaaaaaa blaaa <br>\r\n"
.$bound;
$message .= "Content-Type: image/jpg; name=\"ditbilled.jpg"."\r\n"
."Content-Transfer-Encoding: base64\r\n"
."Content-disposition: attachment; file=\"ditbilled.jpg\"\r\n"
."\r\n"
.chunk_split(base64_encode($data))
.$bound_last;
if(mail($to, $subject, $message, $headers))
{
echo 'MAIL SENdt';
} else {
echo 'fejl, MAIL ikke sendt';
}
?>
| |
| Kommentar Fra : stone47 |
Dato : 25-01-12 13:47 |
|
Jeg har læst lidt på det, men du er lidt foran, eller er jeg for gammel.
jeg pukler lidt med at lave en ny server, og få den til at maile ordentligt.
Men jeg skal nok komme stærkt igen.
hilsen Steen
| |
|
sludder, du er god, det var dig der hjalp mig med htacess filen så vidt jeg husker.
jeg er bestemt ikke expert.
noget af scriptet har jeg ikke lavet men fået det fra nettet, men som regel laver jeg selv min egne script.
uden nette vil jeg skulle købe en masse bøger om php.
Curl scriptet skal laves som jeg har lagt det, det viser de i i hvert fald på cURL hjemmeside.
med cURL kan man også bruge MTA (mail transfer agent, tror nok det hedder!).
ens slags program der køre på mange server som yahoo.
fandt scriptet på nettet.
så vidt jeg kan se initialisere denne kode (når man har sat kodelinen ind i php scriptet)
til at bruge disse agenter der hjælper med at fremvise mail indhold korrekt i yahoo og andre via browser som nævnt i koden.
det er i hvert fald hvad jeg kan forstå denne kode gør!.
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
| |
|
men jeg mangler noget, at få HTML billederne fra, eks en tkst editor / tinymce til at overføre værdier/parametre, data osv, til cURL og headers i et array, så man ligefrem bare kan via et upload script (php) kan indsætte billeder o.a direkte i html for derved at sende det med cURL heardes, der sender det til en rigtig flot hmtl, det bliver mit næste projekt, uhh det bliver rigtig svært.
hmmm, jeg skal bruge en ny alternative cURL file get contents agtig funktion, der kan multi behandle flere filer på samme tid, lucky me, detr er nettop hav cURL lib / biblioteket byder på, hvis mit webhosting understøtter dette. (håber de understøtter masser af cURL funktioner.
der er også noget med en funktion i cURL der kan behandle multi upload osv.
måske kan man lavre en primitiv skabelon med emails og ligefrem en skabelon creator agtig ting til
emails.
| |
| Accepteret svar Fra : stone47 | Modtaget 100 point Dato : 27-01-12 15:39 |
|
Hej henrik.
Jeg har som sagt ikke rigtigt set på hvad du gør, eller vil gøre.
Men jeg prøvede noget med at uploade billeder til en server direkte fra en form.
Det er en classfil der laver det jeg tænker på om du kan sakse noget herfra.
http://stoneplace.dk/stonegallery/
her er uploade diret
hilsen Steen
| |
|
nej, jeg prøver bare at SENDE ALMENLIG HTML MAILS MED PHP MAILS OG SAMTIDIG VEDHÆFTE 1 BILLEDET I MAILEN, JEG SENDER MED PHP SCRIPTET. (OG NÅR MAN HAR MODTAGET MAILEN, SPECIFICERET I $TO VARIABLEN ER DER SØRME NOGET TEKST PLUS ET BILLEDET.
JEG SKAL IKKE GØRE DET MERE SVÆRT END DET ER.
| |
| Godkendelse af svar Fra : henrik2008 |
Dato : 27-01-12 19:29 |
|
Tak for svaret stone47.
Har prøvet dit billed-upload script, ok, det samme har jeg selv lavet.
jeg mangler et mulit upload af biller med progress status bar , der fortæller hvor langt der er igen,
før billedet er uploadet!.
| |
|
har du ikke en kode tjekker, der tjekker om der er jpg /bmp filer der bliver uploadet ?. (for sikkerheden skyld!).
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|