Oprettet tor. d. 28. oktober 2010 kl. 09:38:01

shaya
shaya (7.870 point. Point ude: 0)

Sende email med en vedhæftet fil i Php?

Hvordan kan man sende en email med en vedhæftet fil via webserver php?

Tusind tak

Skrevet tor. d. 28. oktober 2010 kl. 11:13:42| #1

viperine
viperine (35.213 point)
www.amunium.dk
Tag et kig på PHPMailer:
http://phpmailer.worxware.com

- Den er meget bedre til mailudsending end PHPs indbyggede funktion alligevel. Og der kan du netop lave vedhæftninger ret nemt, f.eks. bare:
$mail->AddAttachment($path);

http://phpmailer.worxware.com/ (...)

Skrevet tor. d. 28. oktober 2010 kl. 11:25:08| #2


Skrevet tor. d. 28. oktober 2010 kl. 17:10:57| #3

shaya
shaya (7.870 point)
mcb2001: Kan ikke rigtig få det til at virke?

Skrevet fre. d. 29. oktober 2010 kl. 00:29:28| #4

shaya
shaya (7.870 point)
Vil gerne sende en exe fil og en mac os exe fil og en Linux exe fil? Når jeg kører php filen kommer siden ikke frem?

Skrevet fre. d. 29. oktober 2010 kl. 09:19:09| #5

viperine
viperine (35.213 point)
www.amunium.dk
Det er også en unødvendigt kompliceret løsning, i forhold til at bruge PHPMailer.

Skrevet fre. d. 29. oktober 2010 kl. 17:37:54| #6

shaya
shaya (7.870 point)
Det jo ikke alle tre filer på EN gang. Og hvorfor er det unødvendigt? Har du råd?

Skrevet lør. d. 30. oktober 2010 kl. 12:27:20| #7

viperine
viperine (35.213 point)
www.amunium.dk
Det er unødvendigt, fordi den løsning indebærer at skrive en masse kode selv, vælge headers, læse binær data, osv. - og der er mange ting der kan gå galt, hvis du ikke får det rettet ordentligt til dit formål.

Alternativet, som jeg skrev i første indlæg, er bare at inkludere et library til formålet, f.eks. PHPMailer, og så ellers smide standardkoden ind, sammen med: $mail->AddAttachment($filnavn); Så er du færdig, og behøver ikke teste for fejl, etc.

Jeg har også ladet mig fortælle at PHPs interne mail()-funktion kommunikerer dårligt med SMTP-servere, og derfor sender langsommere end PHPMailer kan. Jeg har dog ikke gidet teste selv.

Skrevet søn. d. 31. oktober 2010 kl. 11:15:31| #8

shaya
shaya (7.870 point)
Når ok. Jeg er inde på WorxWares hjemmeside. Men har lige et spørgsmål - min hjemmeside ligger ikke på min server, den ligger nemlig på one.com's server. Er det muligt at installerer PHPmailer der?

Skrevet søn. d. 31. oktober 2010 kl. 12:11:18| #9

shaya
shaya (7.870 point)
Jeg har fundet ud af hvordan man installerer, men kan ikke rigtig få det til at virke? Det er noget med at man skal installerer noget spaw eller sådan noget?

Skrevet søn. d. 31. oktober 2010 kl. 14:39:18| #10

viperine
viperine (35.213 point)
www.amunium.dk
Spaw er en tekst-editor. Den skulle ikke særlig gerne have noget med det at gøre. PHPMailer skal heller ikke installeres - det er ikke et program men et library - bare tre PHP-filer, der skal lægges et sted og så inkluderes i dine filer.

Jeg ved godt du siger du har fundet det, men for en sikkerheds skyld smider jeg lige et link til downloaden:
http://sourceforge.net/ (...)

I den .zip ligger en del filer, men du skal kun bruge tre: class.phpmailer.php, class.pop3.php og class.smtp.php.
Læg disse tre filer samme sted på serveren, f.eks. en undermappe der hedder phpmailer.

Så skriver du i din kode:

require ('phpmailer/class.phpmailer.php');

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPKeepAlive = true;
$mail->IsHTML(true);

$mail->SetFrom('no-reply@dinside.dk', 'Din sides navn');
$mail->Subject = "E-mailens titel";
$mail->MsgHTML("E-mailens indhold");

$mail->AddAddress("modtager@example.com");
$mailer->AddAttachment("sti/til/attachment.exe");

$mail->Send();

Skrevet søn. d. 31. oktober 2010 kl. 14:40:02| #11

viperine
viperine (35.213 point)
www.amunium.dk
Ups, det var vist det forkerte tag at bruge. Det ligner jo lort. Jeg prøver igen:


require ('phpmailer/class.phpmailer.php');

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPKeepAlive = true;
$mail->IsHTML(true);

$mail->SetFrom('no-reply@dinside.dk', 'Din sides navn');
$mail->Subject = "E-mailens titel";
$mail->MsgHTML("E-mailens indhold");

$mail->AddAddress("modtager@example.com");
$mailer->AddAttachment("sti/til/attachment.exe");

$mail->Send();

Skrevet søn. d. 31. oktober 2010 kl. 15:40:50| #12

shaya
shaya (7.870 point)
Kan ikke rigtig få dit eksempel til at virke?

Har prøvet med den her fra Worxware's hjemmeside og det virker heller ikke?
<code>
<html>
<body>
<?php

require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();  // telling the class to use SMTP
$mail->Host    = "send.one.com"; // SMTP server

$mail->From    = "ex@domain.com";
$mail->AddAddress("ex@domain.com");

$mail->Subject  = "First Message";
$mail->Body    = "Hi! \n\n This is my first e-mail.";
$mail->WordWrap = 50;
$mail->AddAttachment('attachment.ico');
if(!$mail->Send()) {
  echo 'Message was not sent.';
  echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
  echo 'Message has been sent.';
}
?>
</body>
</html>
</code>
Hvad er fejlen her? Dette er en hel .php fil?

Skrevet søn. d. 31. oktober 2010 kl. 15:41:38| #13

shaya
shaya (7.870 point)
Ups, troede man kunne skrive <code></code> i eksperten. Kan man åbenbart ikke, så tag <code></code> fra koden.

Skrevet søn. d. 31. oktober 2010 kl. 15:42:29| #14

shaya
shaya (7.870 point)
smtp serveren (send.one.com) er one's sende server som de opgav til mig.

Skrevet man. d. 01. november 2010 kl. 14:10:57| #15

shaya
shaya (7.870 point)
Glem det. Fandt ud af det. send svar viperine

Skrevet man. d. 01. november 2010 kl. 14:25:44| #16

viperine
viperine (35.213 point)
www.amunium.dk
Virker det?

Jeg var ellers lige ved at teste på http://komplettgamerchallenge.com som også ligger på one.com, men hvis du selv har løst det, så er det jo kun godt.

Skrevet man. d. 01. november 2010 kl. 16:35:16| #17

shaya
shaya (7.870 point)
Ja her er hvad jeg kom frem til (direkte taget fra PHPmailer eksempler):
require_once '../class.phpmailer.php';

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch

try {
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->AddAddress('whoto@otherdomain.com', 'John Doe');
  $mail->SetFrom('name@yourdomain.com', 'First Last');
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  $mail->MsgHTML(file_get_contents('contents.html'));
  $mail->AddAttachment('images/phpmailer.gif');      // attachment
  $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
  $mail->Send();
  echo "Message Sent OK\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Delt Drev ligesom skoler

Oprettet den 3. maj 2012 kl. 21.34
escape4ever giver 30 point for svar | Giv et svar »

Web performance - Content Delivery Networks og database

Oprettet den 23. april 2012 kl. 18.45
zimmerman giver 60 point for svar | Giv et svar »

Picasa web-album

Oprettet den 17. april 2012 kl. 14.53
lisbethg giver 30 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger