So, basically, I'm creating this program to send weekly reports to me.
The reports will be gathered, the problem is making it actually send to
X address.
What I need is a tutorial/source sample of a program which can send the
content of a textbox. Anything that will help out will get a +rep!
<ToXiCa> warsheep + denmark + VIP lounge + cheese = love <3 FOR A MOMENT, NOTHING HAPPENED. THEN, AFTER A SECOND OR SO, NOTHING CONTINUED TO HAPPEN.
Well... atm, I have nothing of that, I was thinking I should get a list of what I need
before I try getting it. A SMTP host.. Any chance on finding one for free?..
If so, where? Possible to set one up?
I'll try google, so you don't have so many questions to answer ><
Edit:
Ok, I know it has something to do with handling outgoing emails... I was going to ask if
Gmail or hotmail would work, but they mainly recieve em, so I guess that wont work?
Aaaand another edit:
Can you just create the code, and mark where the SMTP info should go? I could try to
work out a solution for it myself, as long as I know more what I need.
<ToXiCa> warsheep + denmark + VIP lounge + cheese = love <3 FOR A MOMENT, NOTHING HAPPENED. THEN, AFTER A SECOND OR SO, NOTHING CONTINUED TO HAPPEN.
Total conversion from C# to VB.NET. There may be some syntax issues, etc.
Code:
Imports System
Imports System.ComponentModel
Imports System.Net
Imports System.Net.Mail
Namespace SendMail
Friend Class Mailer
''' <summary>
''' Sends an email using the provided parameters.
''' </summary>
''' <param name="smtpInfo">The SMTPInfo struct filled with your needed SMTP connection info.</param>
''' <param name="from">The email address to send from.</param>
''' <param name="to">An array of names to send the email to. (Can be simply a single email address, this allows for multiple recipients of the same message.</param>
''' <param name="message">The body of the email.</param>
''' <param name="subject">The subject of the email.</param>
Public Shared Sub SendEmail(ByVal smtpInfo As SMTPInfo, ByVal from As String, ByVal [to] As String(), ByVal message As String, ByVal subject As String)
Try
For Each recipient As var In [to]
' Get a new MailMessage to be sent and fill it with the info we need.
Dim msg As New MailMessage(New MailAddress(from), New MailAddress(recipient))
msg.Subject = subject
msg.Body = message.Trim() + Environment.NewLine
msg.Priority = MailPriority.High
msg.IsBodyHtml = True
' Setup the SMTP Client info.
Dim client As New SmtpClient(smtpInfo.Host, smtpInfo.Port)
If smtpInfo.SSL Then
client.EnableSsl = True
End If
If smtpInfo.Auth Then
client.Credentials = New NetworkCredential(smtpInfo.Name, smtpInfo.Pass)
End If
AddHandler client.SendCompleted, AddressOf SmtpClient_OnCompleted
' Hook the SendCompleted event so we can do some post processing and send the email.
client.Timeout = 60
Dim tmp As Object = msg
client.SendAsync(msg, tmp)
Next
Catch ex As Exception
End Try
End Sub
Private Shared Sub SmtpClient_OnCompleted(ByVal sender As Object, ByVal e As AsyncCompletedEventArgs)
' Add your event handler stuff here.
' MailMessage mail = (MailMessage) e.UserState;
End Sub
End Class
''' <summary>
''' Information to setup a SMTP host connection.
''' </summary>
Friend Structure SMTPInfo
''' <summary>
''' Constructor for the SMTPInfo struct.
''' </summary>
''' <param name="host">The SMTP Host. (Either fully qualified HTTP address [http://www.yoursmtphost.com] or the IP address.</param>
''' <param name="name">If the SMTP host requires authentication, this will be your username. Can be set to null.</param>
''' <param name="pass">If the SMTP host requires authentication, this will be your password. Can be set to null.</param>
''' <param name="port">The SMTP host's port.</param>
''' <param name="secureSSL">If the SMTP host uses an SSL connection (https://www.mail.google.com for example) set this to true.</param>
''' <param name="requiresAuth">If the SMTP host requires authentication, set this to true. This will use your Name and Pass to login.</param>
Public Sub New(ByVal host As String, ByVal name As String, ByVal pass As String, ByVal port As Integer, ByVal secureSSL As Boolean, ByVal requiresAuth As Boolean)
Host = host
Name = name
Pass = pass
Port = port
SSL = secureSSL
Auth = requiresAuth
End Sub
Public Auth As Boolean
Public Host As String
Public Name As String
Public Pass As String
Public Port As Integer
Public SSL As Boolean
End Structure
End Namespace
Only shows one error, and that's that it doesn't know what "var" is.
Also, how exactly would I go about using this to send anything?
Like, making a button, where most of the sending details, if not hard coded in,
is a part of a textbox or listbox?
Yeah, I'm sorry, kinda new to this.
Since from and to and all that are variables, can I just define those at a button?
And from there, how will I start the progress to launch this script?
Thanks allot btw, +rep.
<ToXiCa> warsheep + denmark + VIP lounge + cheese = love <3 FOR A MOMENT, NOTHING HAPPENED. THEN, AFTER A SECOND OR SO, NOTHING CONTINUED TO HAPPEN.
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim info As New SMTPInfo("localhost", "your.email@address.com", "password", 433, False, True)
'SMTPInfo info;
'info.Host = "localhost";
'info.Port = 433;
'info.Name = "your.email@address.com";
'info.Pass = "password";
'info.SSL = false;
'info.Auth = true;
Dim toString As String() = New String(0) {}
toString(0) = "whotosendto@mail.com"
Mailer.SendEmail(info, "your.email@address.com", toString, textBox1.Text, "your subject here")
End Sub
It shows both ways to create the SMTPInfo struct. Just read the comments in the Mailer class and SMTPInfo struct for what each param is for.