Avatar billede snigeren Nybegynder
07. september 2007 - 12:52 Der er 17 kommentarer og
1 løsning

få php til at lave en xxx.txt fil og sende med mail?

hmm er det muligt at få php eller et andet script sprog til at lave en xxx.txt fil hvori indholdet fra en form bliver puttet?

håber det er muligt! :)
Avatar billede michael_stim Ekspert
07. september 2007 - 12:57 #1
Klart det er muligt.
1. Skriv til tekstfil
2. Send phpmail med attachment

Men er det fra en form, hvorfor så ikke smide det direkte ind i mailen?
Avatar billede snigeren Nybegynder
07. september 2007 - 13:09 #2
uhm det gør jeg også nu, men dem der skal bruge det skal importere det i deres C5 system via en xxx.txt eller xxx.csv fil.

Jeg bruger lige nu følgende til at sende mails:

$to = "klausnissen@triodimenzionale.dk";
$subject = "Ny ordre";
$headers  = "MIME-Version: 1.0" . "\n";
$headers .= "Content-type: text/html; charset='iso-8859-1'" . "\n";
$headers .= "From: <klausnissen@triodimenzionale.dk>" . "\n";
mail($to, $subject, $order, $headers);
Avatar billede leif Seniormester
09. september 2007 - 22:44 #3
Jeg har gerne brugt den lidt ældre Class phpmailer når jeg skulle bruge vedhæftning af filer
Avatar billede snigeren Nybegynder
09. september 2007 - 23:06 #4
ok kan man ikke bruge det jeg har brugt til vedhæftning af filer?

Hvad godt er der ved at bruge en ældre version?
Avatar billede leif Seniormester
10. september 2007 - 07:09 #5
Det jeg mente er at http://phpmailer.sourceforge.net/ er ikke helt ny mere, jeg har aldrig helt forstået hvordan man vedhæfter, så derfor har jeg brugt phpmailer
Avatar billede snigeren Nybegynder
10. september 2007 - 18:17 #6
uhm er phpmailer og http://phpmailer.sourceforge.net/ ikke det samme? Eller misforstår jeg noget?

Det jeg bruger er det phpmailer eller?
Avatar billede kenny_sye Nybegynder
10. september 2007 - 22:30 #7
Du kan godt benytte mail() til at sende vedhæftede filer:

<?
  $mail_body = "Venligst se vedhæftede bestillings fil";
  $order = "Jeg vil gerne have for fem øre op og ned af væggen, og et par sålløse sivsko uden overlædder";
  $to = "klausnissen@triodimenzionale.dk";
  $subject = "Ny ordre";
  $headers = "From: <klausnissen@triodimenzionale.dk>" . "\n";
  $file_name = "xxx.txt";

  $file_type = "application/octet-stream";
  $semi_rand = md5(time());
  $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

  $headers .= "MIME-Version: 1.0\n" .
    "Content-Type: multipart/mixed;\n" .
    " boundary=\"{$mime_boundary}\"";

  $email_message .= "This is a multi-part message in MIME format.\n\n" .
    "--{$mime_boundary}\n" .
    "Content-Type:text/html; charset=\"iso-8859-1\"\n" .
    "Content-Transfer-Encoding: 7bit\n\n" .
    $mail_body . "\n\n";

  $email_message .= "--{$mime_boundary}\n" .
    "Content-Type: {$file_type};\n" .
    " name=\"{$file_name}\"\n" .
    "Content-Transfer-Encoding: base64\n\n" .
    chunk_split(base64_encode($order)) . "\n\n" .
    "--{$mime_boundary}--\n";

  $ok = @mail($to, $subject, $email_message, $headers);
  if($ok) {
    echo "Mail Sent OK";
  } else {
    echo "Error sending mail. Mail was not sent.";
  }
?>

mvh
Kenny
Avatar billede kenny_sye Nybegynder
10. september 2007 - 22:31 #8
det skulle nok have været et svar :-)
Avatar billede snigeren Nybegynder
11. september 2007 - 17:49 #9
uhh kenny det ser lovende ud,.. jeg har ikke lige tid til at tjekke det før i morgen eller overmorgen, men det so far tanks =)
Avatar billede snigeren Nybegynder
15. september 2007 - 13:54 #10
altså hvis jeg bare kopierer dit script ind i en php og uploader, virker det fint,.. men hvordan faen får du order til at stå i xxx.txt filen? jeg synes da ikke der står at "order" skal bruges noget sted?
Avatar billede snigeren Nybegynder
15. september 2007 - 14:00 #11
ahhh jo der står jo chunk_split(base64_encode($order)) . "\n\n" .    så er det nok der det kommer ind =)
Avatar billede snigeren Nybegynder
15. september 2007 - 14:16 #12
Det virker bare skæbbe skønt det du har fikset =)
en lille sidste ting, den tekstfil der bliver sendt, hvordan laver jeg linieskift i sådan en? <br> virker jo self. ikke når det ikke er html. Produkterne skal helst stå på hver sin linie og ikke sådan her:

1234552700, 1, 1100102760, 2, 7777791777, 3,

men sådan her:

1234552700, 1,
1100102760, 2,
7777791777, 3,

kan du hjælpe med det?
Avatar billede kenny_sye Nybegynder
15. september 2007 - 20:24 #13
du skal bruge \n for linie skift
Avatar billede snigeren Nybegynder
16. september 2007 - 02:51 #14
uhm det har jeg faktisk også prøvet,.. indholdet i txt filen kommer fra følgende script:

$order = "";
while($row = mysql_fetch_array($result))
{
$order .= $row["varenr"];
$order .= $row["farvekode"];
$order .= $row["enhed"];
$order .= ", ";
$order .= $row["qty"];
$order .= ", ";
$order .= "/n";
}

men udfaldet blev følgende:

1234552700, 1, /n5432191300, 4, /n1100102760, 2, /n7777791777, 3, /n


tal og kommaer er som de skal være men /n kommer bare med som tekst,..
Avatar billede michael_stim Ekspert
16. september 2007 - 14:42 #15
Backslash=\
slash=/

Du skal bruge \n (backslash + n)
Avatar billede snigeren Nybegynder
16. september 2007 - 16:00 #16
ja flot selvfølgelig backslash :D

Men det synes heller ikke at virke =(  eller retter hvis jeg copy paster indholdet i txt filen og smider her f.eks. virker linieskiftet men i selv txt filen står det hele på en lang linie adskilt af firkanter. Hvad kan det skyldes?
Avatar billede kenny_sye Nybegynder
17. september 2007 - 15:09 #17
prøv med denn i enden af hver linie: \r\n
Avatar billede snigeren Nybegynder
17. september 2007 - 15:57 #18
hey kenny yesh det virker =)

Det er fordi dem jeg laver siden for får fejl hvis der står \r foran men \r skal på hvis jeg tester på min egen side,..

Jeg takker mange gange for hjælpen Kenny og lidt Stim =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester