Just nu i M3-nätverket
Gå till innehåll

ADO attachment


Lindacharlotta

Rekommendera Poster

Lindacharlotta

Jag sitter med ett väl fungerande formulär, vet bara inte hur jag skriver in att jagvill att kunden sja kunna bifoga en fil...

 

 

skicka.asp

<%@ Language=VBScript %>

<%
Session.lcid = 1053
   dim Name, CompanyName, JobTitle, Address1, City, PostalCode, Country, Email, EmailConfirm, comments, Datum, tid


tid=Time
Datum=Date

     Set mail = Server.CreateObject("CDO.Message")
     mail.From = Request.Form("Email")
     mail.To = "mail1"
     mail.CC = "mail2"
     mail.Subject = "RUBRIK"
     mail.HTMLBody =  "Hur innehållet ser ut i mailet"	  
[color="#006400"]      mail.AttachFile ("g:/test/bild.jpg", "bild")[/color]


mail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2

mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.dgcsystems.net"

mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25

mail.Configuration.Fields.Update

   mail.Send
   set mail = nothing
 sida = "thank_you.asp"
	Response.Redirect(sida)
%>

 

Tacksam för lite hjälp, är osäker på hur jag ska göra..

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Men jag måste ju ta emot filen från mitt formulär? typ

bifoga = Request.Form("attachment")

 

Jag vill att kunden ska ha möjlighet att bifoga en fil i formuläret om så önskas...Jag vet ju inte vad deras fil kommer heta.

mail.AddAttachment "c:\dinfil.xxx"

 

Filenläses ju in ovan i bifoga = Request.Form("attachment")

 

 

 

 

 

Krävs det inte mer ASP-kod för att kunna bifoga en fil i ett formulär?

 

/ Linda

 

 

 

[inlägget ändrat 2008-01-18 10:57:31 av spacelinda]

Länk till kommentar
Dela på andra webbplatser

Vad innebär raden ovan, är det var filen sparas på servern?
Japp.

 

Vill du skicka en fil Direkt med ett formulär du skickar ifrån en sida till en angiven adress?

Det har jag aldrig sett att man kan göra och det känns som en STOR säkerhetsrisk. Tänk om man skulle kunna skicka en .exe-fil till chefen för skojs skull ;)

Så det går nog(99.9% säker) inte.

 

Berätta gärna mer hur du tänkt dig det.

 

Länk till kommentar
Dela på andra webbplatser

Nä, då måste du använda dig av en filuppladdningskomponent och först ladda upp filen till servern. Därefter får du sända mailet och ange attachment-sökvägen till det ställe på servern där uppladdningskomponenten sparade den.

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Ok, ska förklara lite mer detaljerat....Jag har är ett formulär för kunder där de kan felrapportera, hade varit bra om de hade kunnat bifoga en word, PDF-fil med mailet som sedan skickas till mig..

 

Taggen har jag redan lagt in i mitt formulär, så det kan ju inte vara ngt ovanligt..tycker man..

 

<INPUT TYPE=FILE NAME="Attachment">

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

Samma svar, du måste ladda upp filen först. Erbjuder ditt webbhotell någon uppladdningskomponent?

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

enctype = "multipart/form-data" har jag redan lagt in...

 

Jag tror att det stödjer asp upload..

 

Ska då denna strängen bytas ut

Set mail = Server.CreateObject("CDO.Message")

till:

Set Upload = Server.CreateObject("Persits.Upload")

eller vad ska fyllas i ("Persits.Upload")??

 

och istället för requset ska det vara upload...?

 

/ LInda

 

 

[inlägget ändrat 2008-01-18 11:34:16 av spacelinda]

Länk till kommentar
Dela på andra webbplatser

Ska då denna strängen bytas ut

Nej. Du ska behålla ditt mailscript som det ser ut. Men innan du utför detta steg så måste du ta hand om uppladdningssteget. AspUpload använder egna metoder för att hämta formulärfälten så använd dessa istället för Request.Form.

 

Spara undan de variabler som du senare skall använda till ditt mailutskick och ladda sedan upp filen enligt exemplen i dokumentationen Micke länkade till. När du väljer var den uppladdade filen skall sparas och vilket namn den ska få så se till att du döper om den till ett unikt namn, ex. uppbyggt likt ett GUID såsom SDH34JSD34JFSSD.pdf så att inga krockar uppstår med andra uppladdade filer.

 

I ditt mailscript längre ned på sidan använder du sedan helt enkelt den sökväg/filnamn du valt som argument till AddAttachment

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

ok,

Ska se om jag får ihop...

Är inte så jättehaj på ASP men jag ger det ett försök...

Tack för er hjälp iallafall...

 

/ LInda

 

Länk till kommentar
Dela på andra webbplatser

Är inte så jättehaj på ASP men jag ger det ett försök...
Rätt tänkt! Då blir du kanske åtminstonde haj på Asp ;)

Sen kanske det skulle varit mer "rätt" och lärt sig .NET eller PHP om du nu inte hunnit "snöa in" dig på något teknik redan.

Men Asp är bra och det kommer man långt med...

 

Så turordningen är:

 

1)

Skapa Persit-objektet

Ta emot värdena och lägg i variabler

Lagra filen

Glöm inte att frigöra objektet till sist

 

2)

Skapa CDO-objektet

Använd variablerna där dem ska vara

Lägg till filen där den ska vara

Skicka mailet

Glöm inte att frigöra objektet till sist

Klart ;)

 

3)

Ta en kopp kaffe :)

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Nu skulle jag behöva lite hjälp igen...

 

Nu har jag installerat ASP-upload på servern..

Vad är fel här? mailet skickas inte längre...

 

<%@ Language=VBScript %>

<%

Set Upload = Server.CreateObject("Persits.Upload")
Upload.IgnoreNoPost = True

Upload.Save

If Upload.Form("Send") <> "" Then

   dim kund, kontaktperson, telefon, mail, Attachment, bekraftamail, instrumenttyp, leverantor, levkontaktperson, levtelefon, levadress, levpostnr, levort, uploaded_file, fakturakontaktperson, avdelning, bestallarid, fakturaadress, fakturapostnr, fakturaort,tillaggstjanst, kommentar
tid=Time
Datum=Date

     Set Mail = Server.CreateObject("CDO.Message")
     Mail.From = Upload.Form("mail")


     Mail.To = "linda.nilsson@företag.com"
     Mail.Subject = "SUBJECT"
     Mail.HTMLBody = "text i massor"
     Mail.AddAddress "linda.nilsson@företag.com"



Mail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2

Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.dgcsystems.net"

Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25

Mail.Configuration.Fields.Update


Set File = Upload.Files("Attachment")
 If Not File Is Nothing Then
    Mail.AddAttachmentMem File.FileName, File.Binary
 End If

 Mail.Send
 Response.Write "Success!"

End If
Set File = Nothing
Set Mail = Nothing
Set Upload = Nothing
%>

<html>
<head><body>Text</body>
</html>

vad som händer när jag postar formuläret är att man skickas till denna sida och så visas texten Text .

Response.Write "Success!" visas inte, dessutom som jag sa innan så skickas inte mailet...

 

Tacksam för lite hjälp...

 

/ Linda

 

[inlägget ändrat 2008-01-22 10:46:45 av Lindacharlotta]

Länk till kommentar
Dela på andra webbplatser

Svaret på den frågan är helt enkelt att Upload.Form("Send") <> "" inte ärr uppfyllt, dvs värdet av det fältet är en tom sträng. Mer än så går inte säga utan att veta mer om det fältet

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Har gjort lite ändringar. Nu skickas mitt mail, men inte med attachments...

Succes kommer också upp...

Nån som kan ge mig lite tips vad som saknas?

 

Tack på förhand

 

/ Linda

 

 

<%@ Language=VBScript %>

<%
Set Upload = Server.CreateObject("Persits.Upload")
Set File = Upload.Files("Attachment")
Upload.Save

   dim kund, kontaktperson, telefon, mail, Attachment, bekraftamail, instrumenttyp, leverantor, levkontaktperson, levtelefon, levadress, levpostnr, levort, uploaded_file, fakturakontaktperson, avdelning, bestallarid, fakturaadress, fakturapostnr, fakturaort,tillaggstjanst, kommentar
tid=Time
Datum=Date

     Set Mail = Server.CreateObject("CDO.Message")
     Mail.From = Upload.Form("mail")

     Mail.To = "email@företag.com"
     Mail.Subject = "Instrumentanslutningar"
  Mail.HTMLBody = "Text och variabler"

Mail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2

Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.dgcsystems.net"

Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25

Mail.Configuration.Fields.Update


 Mail.Send
 Response.Write "Success!"

Set File = Nothing
Set Mail = Nothing
Set Upload = Nothing
%>

 

 

Länk till kommentar
Dela på andra webbplatser

 Set File = Upload.Files("Attachment")
 If Not File Is Nothing Then
    Mail.AddAttachment File.Path
 End If

 

Kontrollera att .Path verkligen returnerar hela sökvägen till filen och inte bara mappen den ligger i.

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Hur kollar jag det?

Jag la in ditt script men inget hände. MAilet skickas utan bifogad fil...

[inlägget ändrat 2008-01-22 12:09:37 av Lindacharlotta]

Länk till kommentar
Dela på andra webbplatser

Hur kollar jag det?

Att kunna kontrollera värden på variabler är det första man ska lära sig innan man ger sig på att programmera, annars är man rätt hopplöst ute. Felsökning är A och O i programmering.

 

Bara att använda dig av Response.Write variabelnamn

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Så hopplöst ute var jag nog inte.. ;-)

Har fått ihop det nu men tack för din ansträngning..

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

Så hopplöst ute var jag nog inte.. ;-)

Nä det var du inte, jag menar rent generellt. Jag har utvecklat i över tjugo år och än idag spenderar jag en väldigt stor andel av utvecklingstiden (precis som alla andra utvecklare) med att felsöka och optimera kod och då är det väldigt viktigt att man har bra rutiner och verktyg för detta.

 

Det hopplösa i sammanhanget är sådant som tidsförlust, irritation och allmän frustration. Man kan i princip vara väldigt nära en lösning, men utan att felsöka på ett effektivt sätt kan denna sista åtgärd ta en enorm tid att lösa.

 

Bara en erfarenhetsmässig rekommendation således, inget annat. :)

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Skulle behöva lite råd om hur man går till väga för att skicka en bekräftelse till kund.

Den ska se annorlunda ut från vad som skickas med ifyllt formulär till mig.

Alltså kan jag inte använda mig utav

mail.BCC = Upload.Form("mail") eftersom jag vill ha en annan body/innehåll.

 

Tacksam för hjälp

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

Efter du har skickat mailet till dig så skapa ett nytt mailobjekt som är designat för kunden.

När det är klart så skicka mailet.

 

Så båda mailen kan du skicka med Samma fil.

 

Länk till kommentar
Dela på andra webbplatser

Lindacharlotta

Jaså, det var så lätt...:)

Tack för hjälpen, det fungerar jättebra...

 

/ Linda

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...