Schrift
[thread]8959[/thread]

Mehrere Bilder bei html mail: html mails mit mehreren Bildern



<< >> 4 Einträge, 1 Seite
chrisidc
 2007-05-02 16:22
#76372 #76372
User since
2006-01-26
8 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe ein kleines Problem mehrere Bilder mit html mail zu verschicken.

Generell funktioniert es eigentlich einwandfrei wenn ich die Bilder angebe.
Das Problem dabei ist leider nur das ich die Bilder mit einer Schleife erzeuge und daher vorher nicht weis welche und wieviele Bilder es sind.

Anbei der Teil meines scriptes.
Wenn man das ganze mit der for-Schleife macht (ist jetzt auskommentiert) kommt nur eine Fehlermeldung.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl

use Mail::Sender::Easy qw(email);

$mailserver = "...";
$mail_subject = "Testmail";
$mail_message = "...";

...

email({
'from' => 'test@test.com',
'to' => 'test@test.com',
'subject' => $mail_subject,
'smtp' => $mailserver,
'_text' => 'Sorry, your e-mail client is not supporting html mails.',
'_html' => $mail_message,
'_attachments' =>
{

#for(my $i = 1; $i <= 10; $i++)
#{
#$imgfiles[$i] => {'_disptype'=>'GIF Image','_inline'=>$imgfiles[$i],'description'=>'ATM-Image','ctype'=>'image/gif','file'=>$imgdirfiles,},
#} #for

'file1.png' => {'_disptype'=>'GIF Image','_inline'=>'file1.png','description'=>'ATM-Image','ctype'=>'image/png','file'=>'file1.png',},
'file2.png' => {'_disptype'=>'GIF Image','_inline'=>'statsimg2','description'=>'ATM-Image','ctype'=>'image/gif','file'=>'file2.png',},

},
}) or die "email() failed: $@";


---
Modedit Gwendragon: Bitte Code in CODE oder PERL-Tags!
---

Hat vielleicht jemand eine Idee wie ich das lösen könnte?

Vielen Dank

lg
Christoph\n\n

<!--EDIT|GwenDragon|1178109630-->
murphy
 2007-05-02 16:54
#76373 #76373
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Du kannst nicht mitten in einem anonymen Hashkonstruktor eine for-Schleife beginnen -- das gibt die Perlsyntax nicht her.

Ich würde stattdessen folgendes vorschlagen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[...]

my %attachments;
for (@imgfiles) {
$attachments{$_} = {
_disptype => 'GIF Image',
_inline => $_,
description => 'ATM-Image',
ctype => 'image/gif',
file => $imgdirfiles
};
}

email({
from => 'alice@example.com',
to => 'bob@example.com',
[...]
_attachments => \%attachments
}) or die "sending mail failed: $@";

[...]


edit: Wenn ich mir das so anschaue, kommt es mir irgendwie so vor, als ob der Code, der in deiner for-Schleife steckte und den ich im Prinzip einfach kopiert habe, garantiert nicht so funktioniert, wie er soll, weil vermutlich immer wieder die gleiche Datei angehängt wird. Aber das ist ja ein anderes Problem, das mit der ursprünglichen Frage nichts zu tun hat und dessen Lösung dem geneigten Leser überlassen bleibt ;-)\n\n

<!--EDIT|murphy|1178110878-->
When C++ is your hammer, every problem looks like your thumb.
GwenDragon
 2007-05-02 16:57
#76374 #76374
User since
2005-01-17
14603 Artikel
Admin1
[Homepage]
user image
Könnte so gehen (ohne Gewähr):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
my $attac = {};
for(my $i = 1; $i <= 10; $i++) {
$attac->{ $imgfiles[$i] } = {'_disptype'=>'GIF Image','_inline'=>$imgfiles[$i],'description'=>'ATM-Image','ctype'=>'image/gif','file'=>$imgdirfiles,},
} #for


email({
'from' => 'test@test.com',
'to' => 'test@test.com',
'subject' => $mail_subject,
'smtp' => $mailserver,
'_text' => 'Sorry, your e-mail client is not supporting html mails.',
'_html' => $mail_message,
'_attachments' => $attac,
}) or die "email() failed: $@";
chrisidc
 2007-05-02 18:15
#76375 #76375
User since
2006-01-26
8 Artikel
BenutzerIn
[default_avatar]
Danke euch beiden. Es funkt jetzt.

lg
Christoph

PS: Da waren noch einige Fehler enthalten nicht nur das immer das gleiche File angehängt wurde. Das kommt davon wenn man herumexperimentiert.
<< >> 4 Einträge, 1 Seite



View all threads created 2007-05-02 16:22.