---
title: "Skicka e-mail m h a VB"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/76559-skicka-e-mail-m-h-a-vb/page2"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "ampy"
published: "2003-05-10T16:43:00.000Z"
updated: "2003-05-30T14:34:21.000Z"
replies: 31
views: 756
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/76559-skicka-e-mail-m-h-a-vb"
---

# Skicka e-mail m h a VB

_Sida 2 av 2._

## #21 — niko, 2003-05-12T08:16Z

Om du inte får nåt felmeddelande så innebär det att SMTP:en har accepterat att skicka mailet vidare. Om den sen lyckas är en annan sak. Det mest troliga felkällan jag kan komma på är att du har en brandvägg som hindrar SMTP:en att komma ut över port 25.

Felsökningstips:

Kolla runt i undermapparna till *C:\\inetpub\\mailroot* och se om mailen ligger kvar där.

Kolla i event-loggen efter felmeddelanden som kommer från SMTP-tjänsten.

Permalänk: https://www.webforum.nu/p/1043519

## #22 — ampy, 2003-05-12T10:49Z

Mailen ligger i kvar i mappen:
C:\\Inetpub\\mailroot\\Queue\\

Felmeddelande jag hittar i event-loggen är:
Se bifogad bild.

Bilagor:

- [smtp.gif](https://www.webforum.nu/a/1441.gif)

Permalänk: https://www.webforum.nu/p/1043640

## #23 — niko, 2003-05-12T11:16Z

> Mailen ligger i kvar i mappen: 
> C:\\Inetpub\\mailroot\\Queue\\

Skumt. Du har en fast uppkoppling? Och inga brandväggsrestriktioner ut över port 25? Har du provat att skicka till andra adresser?

Vad du kan göra är att slå på loggningen i SMTP för att se vad som händer:
*Högerklicka SMTP i IIS Managern-\>Properties-\>Enable logging*. En annan möjlighet är att du använder en extern SMTP på ditt webhotel tex. Isåf måste du normalt skicka med användarnamn/lösenord.

```
objMail.MailServerUserName = "xxxxxx"
objMail.MailServerPassWord = "yyyyyy"
```

Permalänk: https://www.webforum.nu/p/1043663

## #24 — ampy, 2003-05-12T12:50Z

När jag aktiverade logging så kom mailen fram. :)

Men om jag nu kör mitt program på en annan dator som inte har IIS så går det ju inte att skicka mail. Kan man lösa det på ett annat sätt?  :q

Permalänk: https://www.webforum.nu/p/1043736

## #25 — niko, 2003-05-12T18:10Z

> När jag aktiverade logging så kom mailen fram.

Skumt.

> Men om jag nu kör mitt program på en annan dator som inte har IIS så går det ju inte att skicka mail. Kan man lösa det på ett annat sätt?

Ja. Lite olika förslag:

1\. Hårdkoda in namnet på en extern SMTP (+användarnamn/lösenord) som du har tillgång till.

Fördelar: Snabbt och enkelt om det är ett program som bara ska spridas i en mindre krets.
Nackdelar: Oflexibelt och osäkert eftersom du ger andra access till ditt konto. Du får också eventuella brandväggsproblem.

2\. Låt dom som använder programmet själv ange uppgifter för vilken SMTP de vill använda.

Fördelar: Flexibelt och inga brandväggsproblem.
Nackdelar: Kräver lite mer av användaren.

3\. Koda en egen (minimal) SMTP-server inne i programmet (vissa virus gör så).

Fördelar: Slipper använda nån komponent typ JMail. Slipper använda en extern SMTP.
Nackdelar: Bökigt, krångligt och samma brandväggsproblem som i 1:an.

4\. Lägg upp en publik ASP- eller PHP-sida som skickar mailet och låt ditt program enbart anropa sidan internt via en URL. (Alltså i princip en webservice).

Fördelar: Flexibelt. Slipper använda JMail. Inga brandväggsproblem
Nackdelar: Inga direkta. Kräver att du har nån plats på ett webbhotel.

2:an eller 4:an är nog bäst, men det beror helt på vad du har för syfte med ditt program. En ännu enklare variant är ju att du smäller upp användarens eget Outlook och låter honom/henne skicka mailet manuellt.

Permalänk: https://www.webforum.nu/p/1044006

## #26 — ampy, 2003-05-12T18:19Z

Tack för ett lysande inlägg! 

Jag läste en tråd på ett annat forum där han skrev detta:

> leta reda på hur du använder winsock på ett vettigt sätt med api, kör sedan ethereal när du skickar ett mail. Det som skickas skall du skicka, fast med delvis annat innehåll (du märker vad som skall ändras). Sedan använder du winsock för att skicka det.

 

Man jag har ingen aning hur man gör detta.  :l 

Är det ett bra sätt?

Permalänk: https://www.webforum.nu/p/1044024

## #27 — niko, 2003-05-12T18:44Z

Visst kan du koda allt på winsocknivå vilken metod du än använder. Skillnaden är bara att det blir mycket krångligare (det är därför komponenter som JMail finns). Det förändrar heller inget i princip. Du behöver fortfarande tillgång till en SMTP i metod 1 o 2.

De som skrev det du citerar syftar nog på metod 3, men jag tycker inte du ska ge dig in på den.

Permalänk: https://www.webforum.nu/p/1046932

## #28 — ampy, 2003-05-12T19:17Z

Ok. Då går jag nog på tvåan.  :)

Permalänk: https://www.webforum.nu/p/1047038

## #29 — PsyDonia, 2003-05-29T08:16Z

det är bättre att använda sig utav winsock tycker jag för om du skickar via jmail eller cdonts så måste den so manvänder ditt program ha dom installerade oxå och det är ju inte alltid man har.....

Permalänk: https://www.webforum.nu/p/1066761

## #30 — PsyDonia, 2003-05-29T11:14Z

Om du skulle vilja använda Winsock kan du typ göra så här..

Dim Res As String

Private Sub Skicka()
    Winsock1.RemotePort = 25
    Winsock1.RemoteHost = Din_SMTP_Server
    Winsock1.Connect

Do Until Winsock1.State = 7

DoEvents
        Loop
        Res = "0"
        Winsock1.SendData "MAIL FROM: " & Din_Email & vbCrLf

        Do Until Res = "250"

DoEvents
            Loop
            Res = "0"
            Winsock1.SendData "RCPT TO: " & Motagarens_Email & vbCrLf

            Do Until Res = "250"

DoEvents
                Loop
                Res = "0"
                Winsock1.SendData "DATA" & vbCrLf

                Do Until Res = "350"

DoEvents
                    Loop
                    Winsock1.SendData "FROM: " & Ditt_Namn & vbCrLf
                    Winsock1.SendData "SUBJECT: " & Title & vbCrLf
                    Winsock1.SendData Text1.Text & vbCrLf & "." & vbCrLf

                    Do Until Res = "250"

                        DoEvents
                        Loop
                        Winsock1.Close
                        MsgBox "Mail sent!"
                    End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim Data As String
    Dim Length As Long
    Winsock1.GetData Data
    Length = Len(Data)
    sRes = Left$(Data, 3)
End Sub

Permalänk: https://www.webforum.nu/p/1066861

## #31 — Nexus86, 2003-05-29T15:12Z

```
Do Until Res = "250" 

DoEvents 
Loop
```

Är det bara jag som verkar tycka att denna loop aldrig kommer gå klart? Möjligtvis om du ändrar i Winsock1_DataArrival till:

```
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) 
Dim Data As String 
Dim Length As Long 
Winsock1.GetData Data, , bytesTotal 
Length = Len(Data) 
Res = Left$(Data, 3) 
End Sub
```

Permalänk: https://www.webforum.nu/p/1067010

## #32 — PsyDonia, 2003-05-30T14:34Z

jo skrev vist fel i i Winsock1_DataArrival sorry

Permalänk: https://www.webforum.nu/p/1067703

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/76559-skicka-e-mail-m-h-a-vb/page2  
Föregående sida: https://www.webforum.nu/amne/dotnet/76559-skicka-e-mail-m-h-a-vb.md
