/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Attachment via JMail..?
Fra : Matus


Dato : 22-11-02 20:28

Jeg har forsøgt mig med nedenstående, men får besked:
Object required: 'attachment'

<%
Set msg = Server.CreateObject ("JMail.Message")

msg.Logging = true
msg.From = "kunde@butikken.dk"
msg.FromName = "En rotte i f&aelig;lden"
msg.AddRecipient "ejer@butikken.dk"
msg.Subject = "Ny ordre"
msg.Body = "Ordren er vedh&aelig;ftet"

Set attachment = Attachment.New("style.css", "text/css")

...........Hvad gør jeg galt - og hvordan skal det gøres rigtigt?
...........og hvad gør jeg med resten (kan noget udelades?)

Attachment.SaveToFile "G:\Documents and Settings\user\Skrivebord\" &
style.css
Response.Write(Attachment.ContentType)
Response.Write(Attachment.Data)
Response.Write(Attachment.BinaryData)
Response.Write(Attachment.IsInline)
Response.Write(Attachment.Name)
Response.Write(Attachment.Size)

msg.Send = "mail.image.dk"
%>



 
 
Torben Brandt (23-11-2002)
Kommentar
Fra : Torben Brandt


Dato : 23-11-02 01:06

Matus wrote in dk.edb.internet.webdesign.serverside.asp:
> Jeg har forsøgt mig med nedenstående, men får besked:
> Object required: 'attachment'
>
> <%
&gt; Set msg = Server.CreateObject ("JMail.Message")
&gt;
&gt; msg.Logging = true
&gt; msg.From = "kunde@butikken.dk"
&gt; msg.FromName = "En rotte i f&aelig;lden"
&gt; msg.AddRecipient "ejer@butikken.dk"
&gt; msg.Subject = "Ny ordre"
&gt; msg.Body = "Ordren er vedh&aelig;ftet"
&gt;
&gt; Set attachment = Attachment.New("style.css", "text/css")
&gt;
&gt; ...........Hvad gør jeg galt - og hvordan skal det gøres rigtigt?
&gt; ...........og hvad gør jeg med resten (kan noget udelades?)
Attachment, som du kaldes metoden New fra, eksisterer nok ikke som
objekt.
I stedet kan du "bare" vedhæfte filer til mailen med funktionen
msg.AddAttachment(FileName, IsInline, ContentType) : String

Her er FileName og ContentType oplagte (håber jeg :) )
IsInline er en boolean-værdi. Hvis den er False vedhæftes filen
"almindeligt" og der returneres ikke noget, men hvis den er True, så
markeres filen som Inline.
Det vil sige at filen tildeles et ContentId, så man kan referere til
den fra msg.HTMLBody.

Jeg ved ikke helt hvilken af delene du vil bruge. Hvis den bare skal
sendes med, er det IsInline = False, men hvis bodyen i mailen er i
html, og style.css skal bruges til at style den, så skal du bruge
IsInline = True.

&gt;
&gt; Attachment.SaveToFile "G:\Documents and Settings\user\Skrivebord\"
&
&gt; style.css
&gt; Response.Write(Attachment.ContentType)
&gt; Response.Write(Attachment.Data)
&gt; Response.Write(Attachment.BinaryData)
&gt; Response.Write(Attachment.IsInline)
&gt; Response.Write(Attachment.Name)
&gt; Response.Write(Attachment.Size)
&gt;
Jeg går ud fra at alt det ovenstående bare er af hensyn til testningen,
for de skal ikke bruges til at afsende mailen.

&gt; msg.Send = "mail.image.dk"
&gt; %>
>

Hvis du har brug for at gøre mere, så skriv igen.

mvh Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Matus (23-11-2002)
Kommentar
Fra : Matus


Dato : 23-11-02 13:32


"Torben Brandt" <torben@actuar.dk> skrev i en meddelelse
news:armgpc$5jd$1@sunsite.dk...
> Matus wrote in dk.edb.internet.webdesign.serverside.asp:
> > Jeg har forsøgt mig med nedenstående, men får besked:
> > Object required: 'attachment'
> >
> > [Snip]
> > Set attachment = Attachment.New("style.css", "text/css")
> >
> > ...........Hvad gør jeg galt - og hvordan skal det gøres rigtigt?
> Attachment, som du kaldes metoden New fra, eksisterer nok ikke som
> objekt.

Ja, som det sikkert tydeligt fremgår er jeg ret lysegrøn mht. VBscript
Faktisk kan jeg ikke engang påstå, at jeg har styr på, hverken Objekter
eller syntaks i det hele taget.
Men det jeg har skrevet er forsøgt tolket fra JMails vejledning
http://www.duplo.se/files/pdf/w3_JMail.pdf (side 31)
Det hedder oprindeligt:

Set attachment = Attachment.New("myAttachment.text", "text/plain", "Dette er
en ny textfil")

> I stedet kan du "bare" vedhæfte filer til mailen med funktionen
> msg.AddAttachment(FileName, IsInline, ContentType) : String
>
> Her er FileName og ContentType oplagte (håber jeg :) )

Hmm, jeg siger ikke så meget ))

> IsInline er en boolean-værdi. Hvis den er False vedhæftes filen
> "almindeligt" og der returneres ikke noget, ...[snap]

Det jeg forsøger er at sende den bruger-udfyldte asp-side, som jeg står på
(mens den stadig indeholder de indtastede data).
Kan jeg få dig til at skrive syntaxen, hvis vi f.eks. kalder den, der skal
vedhæftes for "oplysninger.asp", sådan som de skal skrives helt konkret. Jeg
har nemlig lidt svært ved at gennemskue, hvad der er VBscript og hvilke ting
jeg skal erstatte med egne indtastninger
Det tror jeg vil være nemmere for mig at gennemskue.

Siden er, som du gættede, styled med en style.css, men det er ikke
afgørende. Hvis det komplicerer det hele, så styler jeg den såmænd gerne med
alm. html. (jeg brugte den kun som eks.). Det er vigtigere for mig, at
forsøge at få den til at sende den rigtige fil (som måske i forvejen
besværliggøres af at jeg "står" på den ;)



Torben Brandt (23-11-2002)
Kommentar
Fra : Torben Brandt


Dato : 23-11-02 17:54

Matus wrote in dk.edb.internet.webdesign.serverside.asp:
> "Torben Brandt" <torben@actuar.dk> skrev i en meddelelse
> news:armgpc$5jd$1@sunsite.dk...
> > Matus wrote in dk.edb.internet.webdesign.serverside.asp:
> > > Jeg har forsøgt mig med nedenstående, men får besked:
> > > Object required: 'attachment'
> > >
> > > Set attachment = Attachment.New("style.css", "text/css")
> Ja, som det sikkert tydeligt fremgår er jeg ret lysegrøn mht. VBscript
> Faktisk kan jeg ikke engang påstå, at jeg har styr på, hverken Objekter
> eller syntaks i det hele taget.
Jeg tror ikke, jeg vil komme ind på 'den store objekt-guide', men kaldet
Attachment.New er et kald til metoden New i objektet Attachment. Altså skal
du først have lavet et sådant objekt.

Det er dog ikke sikkert at man selv kan lave objektet, men ved at bruge
msg.AddAttachment(....), så kan du nemt komme uden om det.

> Men det jeg har skrevet er forsøgt tolket fra JMails vejledning
> http://www.duplo.se/files/pdf/w3_JMail.pdf (side 31)
Jeg synes heller ikke altid den er helt god. Den er mere til at slå op i, end
at lære fra.


> > I stedet kan du "bare" vedhæfte filer til mailen med funktionen
> > msg.AddAttachment(FileName, IsInline, ContentType) : String
> >
> > Her er FileName og ContentType oplagte (håber jeg :) )
>
> Hmm, jeg siger ikke så meget ))
Jeg undskylder! Det er også et dårligt svar. Og selv om du var helt med, så
er det jo ikke sikkert at alle andre som læser tråden er med.

Jeg troede du vidste det, fordi du i Attachment.New("style.css", "text/css")
har sat FileName til "style.css" og ContentType til "text/css".

FileName er (i hvert fald i AddAttachment-funktionen) den fulde sti til filen
på serveren som skal vedhæftes. ContentType er en betegnelse for typen af
filen.
Det er kun nødvendigt at udfylde FileName, fx
msg.AddAttachment("d:\websted\fil.txt")


> Det jeg forsøger er at sende den bruger-udfyldte asp-side, som jeg står på
> (mens den stadig indeholder de indtastede data).
> Kan jeg få dig til at skrive syntaxen, hvis vi f.eks. kalder den, der skal
> vedhæftes for "oplysninger.asp", sådan som de skal skrives helt konkret.
Jeg
> har nemlig lidt svært ved at gennemskue, hvad der er VBscript og hvilke
ting
> jeg skal erstatte med egne indtastninger
> Det tror jeg vil være nemmere for mig at gennemskue.
>

Jeg kan gøre et forsøg, men jeg skal lige forstå dig ret:
1) Du viser en formular til en bruger
2) Brugeren udfylder formularen
3) Brugeren trykker 'submit', og derefter modtager han en mail, som har en
fil vedhæftet. Denne fil ligner den han så, da han trykkede 'submit'

Eller skal den udfyldte formular ikke vedhæftes, men være selve mailen?

Uanset om den udfyldte formular skal være i mailen eller vedhæftes, så skal
det ikke være oplysninger.asp eller en anden .asp-side, for så kan modtageren
jo se alle dine ASP-tags, kodeord til mail-serveren, database-forbindelse
o.s.v.

Du skal i stedet lave en "ny" side, som ligner den tomme formular du sendte
til brugeren, men ikke i ASP - kun HTML/CSS/JavaScript.
Når brugeren trykker 'submit', så henter du denne nye, tomme formular frem,
indsætter alle de indtastede værdier og sender dén til brugeren.


Jeg kan godt lave et lille kode-eksempel til dig, hvis ovenstående ikke er
helt klart, men der er mange måder at gøre det på, og jeg er ikke helt sikker
på hvad du vil sende i mailen og om det skal vedhæftes eller være selve
mailen...
Så hvis du evt lige ville beskrive for mig hvordan tingene skal foregå og i
hvilken rækkefølge.

mvh Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Matus (23-11-2002)
Kommentar
Fra : Matus


Dato : 23-11-02 21:09

Torben Brandt wrote:
> Matus wrote in dk.edb.internet.webdesign.serverside.asp:
>> "Torben Brandt" <torben@actuar.dk> skrev i en meddelelse
>> news:armgpc$5jd$1@sunsite.dk...
>>> [snip]...Faktisk kan jeg ikke engang påstå, at jeg har styr på,
>> hverken Objekter eller syntaks i det hele taget.
> Jeg tror ikke, jeg vil komme ind på 'den store objekt-guide', men

Helt i orden Jeg har forsøgt (seriøst) at lære asp over et par omgange,
men har måtte kast håndklædet i ringen, begge gange. Nu går jeg så småt
igang for mig selv, og bliver også langsomt, men sikkert en smule klogere,
hver gang. Så en dag går der måske en prås op for mig

> Jeg troede du vidste det, fordi du i Attachment.New("style.css",
> "text/css") har sat FileName til "style.css" og ContentType til
> "text/css".

Jeg var netop meget i tvivl på grund af den måde de skriver ordene
"FileName" og "ContentType" med versaler, som jo typisk er noget man bruger
i scriptsprog (eks. VBscript, JavaScript, onMouseOver osv.)

> FileName er (i hvert fald i AddAttachment-funktionen) den fulde sti
> til filen på serveren som skal vedhæftes. ContentType er en
> betegnelse for typen af filen.
> Det er kun nødvendigt at udfylde FileName, fx
> msg.AddAttachment("d:\websted\fil.txt")

Ok, men så spekulerer jeg på, hvad stien mon skal hedde, når det er den
(parsede) fil jeg står i, der skal vedhæftes..?
Jeg laver et link, så du kan se hvordan jeg mener.

> Jeg kan gøre et forsøg, men jeg skal lige forstå dig ret:
> 1) Du viser en formular til en bruger

Jeg er i færd med at lave en bestillingsside, hvor brugeren vælger
forskellige varer http://ewan.dk/butik

> 2) Brugeren udfylder formularen

Det kan man godt kalde det

> 3) Brugeren trykker 'submit', og derefter modtager han en mail, som
> har en fil vedhæftet. Denne fil ligner den han så, da han trykkede
> 'submit'
>
> Eller skal den udfyldte formular ikke vedhæftes, men være selve
> mailen?

Både ja og nej. På den kluntede måde jeg har lavet det på nu, ender brugeren
på en færdig fakturaside når han/hun trykker "Gå til kassen", som de på den
mest hjælpeløse måde bedes om at sende ind til shoppen (grin ikke alt for
larmende når du ser det ;). Men den rigtige måde at gøre det på ville
selvfølgelig være, at brugeren blev sendt til en anden side, hvor jeg pænt
takkede dem for ordren og forsikrede dem om, at deres varer vil blive sendt
af sted hurtigst muligt - samtidig med at den genererede faktura bliver
sendt som en vedhæftet fil (eller som selve mailen) til shopindehaveren, som
på den måde modtager en seddel som han både kan bruge som plukliste, faktura
og adresselabel i ét..!

> Uanset om den udfyldte formular skal være i mailen eller vedhæftes,
> så skal det ikke være oplysninger.asp eller en anden .asp-side, for
> så kan modtageren jo se alle dine ASP-tags, kodeord til
> mail-serveren, database-forbindelse o.s.v.

Når jeg sender den på den måde jeg hidtil har fundet ud af, så sendes den
som html-side med de parsede data. Men fidusen er jo også at den netop skal
sendes til shopejeren, og han måtte godt få de oplysninger *gg* (har dem jo
i forvejen)

> Jeg kan godt lave et lille kode-eksempel til dig, hvis ovenstående
> ikke er helt klart, men der er mange måder at gøre det på, og jeg er
> ikke helt sikker på hvad du vil sende i mailen og om det skal
> vedhæftes eller være selve mailen...
> Så hvis du evt lige ville beskrive for mig hvordan tingene skal
> foregå og i hvilken rækkefølge.

Det lyder rigtigt godt.
Strukturændringer accepteres stort set uden forbehold, hvis vi nærmer os en
rigtig løsning
Prøv i første omgang at gå hele proceduren igennem, du behøver ikke at
frygte at du får bestilt en hel masse - siden er ikke implementeret endnu
))



Torben Brandt (23-11-2002)
Kommentar
Fra : Torben Brandt


Dato : 23-11-02 22:11

Matus wrote in dk.edb.internet.webdesign.serverside.asp:
> Torben Brandt wrote:
> >
> Jeg var netop meget i tvivl på grund af den måde de skriver ordene
> "FileName" og "ContentType" med versaler, som jo typisk er noget man bruger
> i scriptsprog (eks. VBscript, JavaScript, onMouseOver osv.)
Jeg ved ikke om der er nogle generelle "tommelfinger-regler" hvad angår
navngivning af variable og program-sprog, men for mig betyder store bogstaver
bare at et nyt ord begynder...

>
> Ok, men så spekulerer jeg på, hvad stien mon skal hedde, når det er den
> (parsede) fil jeg står i, der skal vedhæftes..?
> Jeg laver et link, så du kan se hvordan jeg mener.
Et Link er altid en god idé! :)

"Problemet" med at vedhæfte en parset fil, er at den først bliver dannet, når
siden sendes ud fra serveren, og derfor ikke eksisterer på serveren. Men
mailen skal jo sendes fra serveren, så det kan ikke direkte lade sig gøre, men
problemet kan sagtens løses. Mere om det herunder.

>
>
> Både ja og nej. På den kluntede måde jeg har lavet det på nu, ender brugeren
> på en færdig fakturaside når han/hun trykker "Gå til kassen", som de på den
> mest hjælpeløse måde bedes om at sende ind til shoppen (grin ikke alt for
> larmende når du ser det ;). Men den rigtige måde at gøre det på ville
> selvfølgelig være, at brugeren blev sendt til en anden side, hvor jeg pænt
> takkede dem for ordren og forsikrede dem om, at deres varer vil blive sendt
> af sted hurtigst muligt - samtidig med at den genererede faktura bliver
> sendt som en vedhæftet fil (eller som selve mailen) til shopindehaveren, som
> på den måde modtager en seddel som han både kan bruge som plukliste, faktura
> og adresselabel i ét..!
Okay, jeg tror jeg er ved at være med :)
Jeg har kigget lidt på siderne, og vil forelå at du nederst på fakturaen
(faktura.asp) lægger en knap, hvor brugeren kan "godkende købet".

Når brugeren trykker på "godkend køb", så skal den samme side vises igen, men
bare med en meddelelse om at købet er gået igennem, og så skal "godkend køb"
ikke være der mere.

Det er ved det andet kald til faktura.asp at købet endeligt skal bestilles og
der derfor skal afsendes en mail.

> Når jeg sender den på den måde jeg hidtil har fundet ud af, så sendes den
> som html-side med de parsede data. Men fidusen er jo også at den netop skal
> sendes til shopejeren, og han måtte godt få de oplysninger *gg* (har dem jo
> i forvejen)

Ja, men som omtalt tidligere i dette indlæg, så foregår parsingen på vej ud af
serveren, og det eneste du kan bruge fra asp-siden er koderne, som fx er
Antal af vare <%= antal %> à <%= pris %> kr pr stk
Men deraf fremgår ikke hvad antallet er, det er først i parsingen at antallet
og prisen indsættes.

Derfor må vi generere en ny side (en ny faktura), som vi sender i mailen.
Som jeg læser dit indlæg, så vil du gerne have den til at ligne den, som vises
til brugeren, det kan også lade sig gøre.

Her kommer et kode-forslag til generering af denne nye faktura, som sendes i
mailen. Den skal naturligvis kun være en lille del af faktura.asp, for den
skal jo kun udføres hvis der er trykket på "godkend køb"-knappen og bagefter
skal fakturaen jo vises igen, så brugeren kan printe den ud, hvis han ikke har
gjort det endnu.

msg = Server.CreateObject("JMail.Message")
msg.Logging = True
msg.Silent = True

msg.From = [fra-mail]
msg.FromName = [fra-navn]
msg.Subject = "Ny bestilling"
msg.AddRecipient [til-mail]
msg.ContentType = "text/html"

s = "<html><body>"
s = s & "Her skal resten af html-koderne for fakturaen stå, <br>"
s = s & "og vi skal huske at sætte antal, priser, adresse osv <br>"
s = s & "ind, på samme måde som vi opbygger fakturaen til brugeren<br>"
s = s & "Fx sådan her:<br>"
s = s & "<table><tr><td colspan=""2"">Kunde</td></tr>"
s = s & "<tr><td>Navn:</td><td>" & Session("navn") & "</td></tr>"
s = s & "<tr><td>Adresse:</td><td>" & Session("adresse") & "</td></tr>"
s = s & "</table>"
s = s & "Og på denne måde opbygges hele mailen, hvor vi bare ikke skriver<br>"
s = s & "det til brugeren med Response.Write, men gemmer det i variablen s"
s = s & "</body></html>"
msg.HTMLBody = s
msg.Send = [mail-server-adresse]


Hvis det, du skal sende i mailen og det du skal give tilbage til brugeren, er
næsten ens, kunne du nøjes med at lave variablen s én gang, og bruge den både
til at lægge i mailen og til at skrive til skærmen med
Response.Write "Bestilling er gemt!<br><br>" & s


Hvis vi skal lægge stylesheetet i en ekstern fil (style.css) så bliver det
lidt mere teknisk. Vi kan godt forsøge, men jeg tror det vil være nemmest hvis
du først har fået den til at sende en eller anden mail. Så kan du skrive igen.
Husk at indholdet i en .css-fil kan lægges ind i html-filen i en <style>-blok.

Håber det hjalp, Torben


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Matus (24-11-2002)
Kommentar
Fra : Matus


Dato : 24-11-02 16:25

Hej Torben

Foreløbigt tak.
Min router er lige brudt sammen, så jeg vil lige benytte lejligheden til at
få formatteret min pc (det har den trængt til længe..!)

Jeg vender frygteligt tilbage. Om ikke andet, så for at fortælle, hvis alt
gik godt



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste