Nekromanti Öh... en programmeringsfråga... (HTML-mail)

Rising

Vila i frid
Joined
15 Aug 2001
Messages
12,763
Location
End of the green line
Ursäkta att jag postar sånt här här... men jag hänger inte på några programmeringsforum, och de skrämmer mig...

Om man vill skicka HTML-formaterade mail från en sida på nätet (här är det fråga om att skicka data ifrån ett formulär), hur gör man då?

(och framförallt - går det i ASP? när man är så lökig som jag?)

Alla sidor jag hittar som säger sig kunna detta, där faller det alltid på kommandon som Server.CreateObject("CDONTS.NewMail"). Jag suger visserligen, men visst är det så att inga sådana här CDONTS-grejer funkar från mitt webhotell eftersom jag hela tiden får felmeddelanden?

Webbhotellet har ett färdigt script för att skicka mail, men det är värsta barna hedenhös och verkar sakna möjligheten att HTML-formatera ens mail.

Jag kan inte fatta att det här skall vara så djävla svårt. Alla sidor som har färdiga paketlösningar verkar ta för givet att jag skulle vara själva servernissen - och kunna installera filmer där och ha mig. Så är det ju inte. Jag vill bara cut the crap och skicka mail med lite tabeller och grejer.

Så... vad gör jag fel? Vad måste jag lära mig för att kunna göra detta? Varför skall livet alltid vara en enda lång uppförsbacke?

Ska jag ringa till supportersnubbarna, och - i så fall - vad ska man fråga efter? Så att man låter någorlunda smart?
 

Rising

Vila i frid
Joined
15 Aug 2001
Messages
12,763
Location
End of the green line
Re: HTML-mail

Var det sådant här du menade?
Nä, det där skickar rena textmail. Så om man skriver HTML-taggar så får man ett mail med taggar. Det blir alltså inte ett HTML-formaterat mail.
 

Feuflux

omjonasson.se
Joined
8 Jan 2001
Messages
5,026
Location
Linköping
Re: HTML-mail

Hoppas du inte blir förolämpad om jag gick in på helt fel nivå här... men alltså, om jag skriver in
Test: < i >weee< / i > <-- kolla kursivt
så blir det kursivt när thunderbird (som givetvis anropas när jag trycker på send-knappen i firefox). Så då funkar väl html-taggar då?

Men okej, nu ska jag sova. Jag kan göra bort mig mer imorgon eftersom jag faktiskt inte kan ge dig ett ordentligt svar, men det skulle vara kul om jag lärde mig nåt i förbifarten.

Jag suger så mycket att jag inte ens vet hur man får html-taggar att ge fan i att köras i ett inlägg.... mellanslagskung-fu!
 

Eksem

Champion
Joined
19 Feb 2001
Messages
7,615
Location
Stockholm
"Jag kan inte fatta att det här skall vara så djävla svårt."

Det gör ingen annan heller. Se för övrigt till att aldrig hamna i den situationen att du ska ladda upp filer via en ASP-sida. Där är det ännu snårigare. (Varför finns allt sådant redan med i PHP men inte ASP? Microsoft kunde inte förutse att folk skulle vilja ladda upp filer och skicka e-mail? Eller vad?).


"visst är det så att inga sådana här CDONTS-grejer funkar från mitt webhotell eftersom jag hela tiden får felmeddelanden?"

Tja, vad får du för felmeddelanden?


"Ska jag ringa till supportersnubbarna, och - i så fall - vad ska man fråga efter? "

Du säger: Hej, jag heter Rising och jag vill skicka HTML-mail från en ASP-sida. Vad ska jag använda för komponent?
 

Krille

Super Moderator
Joined
7 Feb 2000
Messages
29,540
Location
Mölndal, Sverige
Ja, det går i ASP. Det är ett av mina problem på jobbet. Du får en mailerfunktion som jag regelbundet använder.

<pre><font class="small">code:</font><hr>
function mail_sendMail(fromWho, toWho, subject, body, cc, bcc, html)

const cdoBasic = 1 ' Autentiseringsmetod (klartext)
const cdoSendUsingPort = 2

' Lösenord och servernamn å sånt.
const cdoUser = "MAIL_SMTP_USERNAME"
const cdoPassword = "MAIL_SMTP_PASSWORD"
const cdoServer = "10.0.0.1"

dim iConf
dim Flds

' Om ett fel uppstår så fortsätter vi att köra ändå.
on error resume next

' Skapa meddelande och konfigurationsobjekt
set iMsg = createobject("CDO.Message")
set iConf = createobject("CDO.Configuration")

set Flds = iConf.Fields

' Gör en klase inställningar
with Flds
' Välj autentiseringsmetod (i det här fallet klartext)
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
' Användarnamn till SMTP-servern
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = cdoUser
' Lösenord till SMTP-serivern
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = cdoPassword

.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
' Mailserver som används
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = cdoServer
' Hur tålmodig är du?
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30

' Den port som SMTP-servern använder för att lyssna efter inkommande kopplingar. Oftast 25
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
' Används SSL för mailöverföring, true eller false
' .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = false

.Update
end with


' Sätt inställningarna på meddelandet.
with iMsg
Set .Configuration = iConf ' konfigurationen
.To = toWho ' Mottagare
.From = fromWho ' Avsändare
if cc <> "" then
.CC = cc ' Korspost
end if
if bcc <> "" then
.BCC = bcc ' Blindpost
end if
.Subject = subject ' Ämnesrad

' Unt here is ze trick: om flaggan html är true så är body ett html-meddelande.
' Om flaggan är false så är body ren text.
if html then
.HTMLBody = body
else
.TextBody = body
end if

' Åsså skickar vi
.Send

End With

' Städa upp och ta bort jox
set iMsg = nothing
set iConf = nothing
set Flds = nothing

' Om nåt snöt sig så vill vi veta det. Returnera felnummer.
' Skulle allt gå bra så returneras 0
mail_sendmail = Err.Number

end function
</pre><hr>

Anropa den sedan med:

<pre><font class="small">code:</font><hr>iSvar = mail_sendMail("ingen@avsandarserver.se", "nagon@mottagarserver.se",
"Ett html-brev", strVariabelMedHtmlBrev, "", "", true)</pre><hr>

...eller motsvarande anrop, så händer nåt.
 

Rising

Vila i frid
Joined
15 Aug 2001
Messages
12,763
Location
End of the green line
Woohoo! Sicken framgång!

Oj, asschysst att du tog dig tid. Se till att äta ordentligt innan vi träffas - när nu det blir av - för då ska jag bjuda dig på rejält med öl som tack för hjälpen.

Jag fick det först inte alls att funka. Jag har ju ingen aning om vad min cdoserver är för något, och jag matade dessutom in helt fel grejer i fälten för cdouser och -password.

Faktum var att jag helt övergav din kod ett tag och började spana in php och gjorde ett par tafatta försök att koda sådana sidor, då jag -när jag i mitt första fungerande skript provade en phpinfo(); -fick se smtp-informationen... Den fick mig att utbrista "hmm... Det kanske är det här som är cdoservern... Jag provar med Krilles pryl en gång till."

Det funkade.

Nu damp det precis ner mitt första HTML-formaterade mail med "Pooop bajs Prutt".

Egentligen borde man göra en film om mig, för jag är en sådan enorm förebild för alla andra människor: Jag kan ju ingenting, jag begriper ingenting, jag kastar mig oförskräckt in i utmaningar som ligger kilometervis utanför min räckvidd, och ändå så lyckas jag med en hel del ändå. Jag lär mig ingenting av mina misstag, jag samlar inte upp några erfarenheter som helst på vägen; jag strävar bara vidare på ren envishet och dumhet.

Den här dagen visar att en riktig idiot som jag kan gå hur långt som helst så länge som han bara har några smarta kompisar att fråga om hjälp.
 

Krille

Super Moderator
Joined
7 Feb 2000
Messages
29,540
Location
Mölndal, Sverige
Re: Woohoo! Sicken framgång!

"Jag fick det först inte alls att funka. Jag har ju ingen aning om vad min cdoserver är för något, och jag matade dessutom in helt fel grejer i fälten för cdouser och -password."

Typiskt programmerarjag. Jag tänkte helt enkelt "men användare, lösen och mailserver borde väl karln begripa, det behöver jag förstås inte kommentera och förklara".

Var lite försiktig med koden. Koden i sig är väl rätt harmlös, men lägger man ut formulär helt oförhappandes utan kontroll av inmatat bjäfs så finns risk att folk hittar på dumma saker. Kolla speciellt avsändaradressen så att den bara innehåller en epostadress och inget mer. Undvik fritextfält för meddelanden om du kan, eller se till att du håller snorkoll på meddelandet så att det inte ingår några andra fulmailgrejer. Och låt aldrig någon mata in mottagaradress själv.
 

Rising

Vila i frid
Joined
15 Aug 2001
Messages
12,763
Location
End of the green line
Re: Woohoo! Sicken framgång!

Kolla speciellt avsändaradressen så att den bara innehåller en epostadress och inget mer.
Okej. Det fältet kommer hämtas från en databas, där enbart registrerade användare finns med (och all registrering sker manuellt, så där finns det inte så stor risk för fuckups). Tack för varningarna.

Återigen; asschysst.

/Rising; världens sämsta programmerare.
 
Top