ampyMedlem sedan feb. 20011 498 inlägg Kan man skicka e-mail med hjälp av Visual Basic?
Jag vill alltså skapa ett program där man ska kunna skicka e-mail till valfri e-mailadress.
Om det går, hur gör man detta?
I ASP vet jag att man gör det med hjälp av komponenter, t ex CDONTS eller Jmail. Är det samma sak i VB?
nikoMedlem sedan juni 20022 599 inlägg Ja, visst. Varken JMail eller CDONTS har ett smack med ASP att göra. De är vanliga Windows COM-komponenter. Project -> References -> Lägg till Jmail eller Microsoft CDO for NTS så kan du köra typat och använda intellisensen. (Det går så klart att använda CreateObject också.)
ampyMedlem sedan feb. 20011 498 inlägg Microsoft CDO for NTS finns inte med på min lista. :l
Varför?
Om jag ska använda Jmail, vad ska jag då ange som e-posterver?
nikoMedlem sedan juni 20022 599 inlägg
Microsoft CDO for NTS finns inte med på min lista.
För att den inte är installerad? Eller att den eventuellt heter nåt annat på XP. Har du den virtuella SMTP:en i IIS:en installerad?
Om jag ska använda Jmail, vad ska jag då ange som e-posterver?
Tja .. Nån server du brukar använda. localhost funkar bra om du har en lokal SMTP.
ampyMedlem sedan feb. 20011 498 inlägg Hur ser koden ut för när man skickar med hjälp av JMail?
Den koden jag har fungerar inte... :(
nikoMedlem sedan juni 20022 599 inlägg Vad är det som inte funkar då?
Dim objMail As jmail.Message
Set objMail = New jmail.Message
objMail.From = "dinmailadress"
objMail.FromName = "Ampy"
objMail.AddRecipient "dinmottagaresadress"
objMail.Subject = "..."
objMail.Body = "..."
objMail.Send "dinsmtpserver"
Set objMail = Nothing
ampyMedlem sedan feb. 20011 498 inlägg Felmeddelande:
The message was undeliverable. All servers failed to recieve the message.
nikoMedlem sedan juni 20022 599 inlägg Vad är det för SMTP du försöker använda då? Om den kräver påloggning så kan du göra det med:
objMail.MailServerUserName = "xxxxxx"
objMail.MailServerPassWord = "yyyyyy"
I annat fall kan du få ut ett mer exakt fel om du kör:
Dim objMail As jmail.Message
On Error Resume Next
Set objMail = New jmail.Message
objMail.Logging = True
objMail.From = "dinmailadress"
objMail.FromName = "Ampy"
objMail.AddRecipient "dinmottagaresadress"
objMail.Subject = "..."
objMail.Body = "..."
objMail.Send "dinsmtpserver"
If Err.Number <> 0 Then Debug.Print objMail.Log
Set objMail = Nothing
ampyMedlem sedan feb. 20011 498 inlägg Jag skrev "localhost" som SMTP-server. Men jag vet inte riktigt om jag har det aktiverat på datorn eller inte.
Jag har självklart IIS installerat.
nikoMedlem sedan juni 20022 599 inlägg Vad får du för fel med Debug.Print objMail.Log? Om det är "No socket .." så har du inte SMTP:en installerad eller avstängd.
ampyMedlem sedan feb. 20011 498 inlägg Jag får samma felmeddelande som förut eftersom den raden ligger före.
Om jag skriver in koden "on error resume next" kommer inget meddelande fram.
nikoMedlem sedan juni 20022 599 inlägg
Om jag skriver in koden "on error resume next" kommer inget meddelande fram.
Jo. Det finns i debug-fönstret: View - Immediate Window.
Men i vilket fall som helst: Om du startar IIS-managern så ser du ju om du har SMTP:en installerad eller om den eventuellt bara är avstängd. Eftersom du inte kunde lägga till CDONTS-referenserna tidigare så är nog risken att du får plocka fram Windows-skivan och installera den.
ampyMedlem sedan feb. 20011 498 inlägg Se bifogad bild för att se hur det ser ut i IIS.
nikoMedlem sedan juni 20022 599 inlägg Ser väl bra ut. Men då är ju frågan vad du får för felmeddelande.
Kör:
If Err.Number <> 0 Then msgbox objMail.Log
om det känns bättre.
ampyMedlem sedan feb. 20011 498 inlägg Det underliga är att det står ingenting i messageboxen. :l
Den kommer alltså fram men det står inget meddelande i den.
nikoMedlem sedan juni 20022 599 inlägg Högerklicka SMTP i IIS Managern->Properties->Access->Relay ..->Only list below. Lägg där till 127.0.0.1 och/eller din kort-IP.
ampyMedlem sedan feb. 20011 498 inlägg Nu blir det inget felmeddelande eller nånting men mailet kommer aldrig fram till den e-postadress jag skickade till. Har väntat i ungerfär 10 minuter nu.
Varför kommer det aldrig fram?