Hej, Ballou / Hostek bytte certifikat på mail som gör att man inte kan maila
för information så hade Ballou ett utgånget certifikat på alla sina mailservrar. De byttes och uppmanade användare att byta från sina inkommande och utkommande maildomäner från ex mail.pellesoft.se till nmailx.ballou.se samt se till at utgående port är 587 och att ssl är aktiverat.
Men, det räckte inte - man måste också i koden lägga till följande
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
samt
.EnableSsl = smtpUseSSL
Så nu för att skicka ett smtp mail via exempelvis ett .net projekt på en IIS webbserver så att det kommer fram så behöver ni göra följande kommando :
Shared Function SendMail(
ByVal From As String, ByVal FromAlias As String, ByVal MailTo As String,
ByVal Subject As String, ByVal Message As String, Optional ByVal sendashtml As Boolean = True,
Optional ByVal relay As Boolean = True, Optional ByVal attachmenturl As String = "",
Optional ByVal attachmentfilename As String = "") As Boolean
Try
Dim MailAddress As New MailAddress(MailTo)
' skickar med ett alias
Dim fromaddress As New MailAddress(From, FromAlias)
Dim msg As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage(fromaddress, MailAddress) With {
.IsBodyHtml = True,
.BodyEncoding = System.Text.Encoding.UTF8,
.Subject = Subject
}
' om vi skall skicka med bilaga
If attachmenturl <> "" Then
' extra men tydligen bra för mailklienter att berätta vad det är för contentinnehåll som skickas
Dim contentType As System.Net.Mime.ContentType = New System.Net.Mime.ContentType()
contentType.MediaType = System.Net.Mime.MediaTypeNames.Application.Octet
contentType.Name = attachmentfilename ' ex test.pdf
msg.Attachments.Add(New Attachment(attachmenturl, contentType))
End If
If sendashtml = True Then
msg.Body = Message
Else
msg.Body = Message
End If
Dim smtphost As String = System.Configuration.ConfigurationManager.AppSettings("smtp-host")
Dim smtpport As String = System.Configuration.ConfigurationManager.AppSettings("smtp-port")
Dim smtpusername As String = System.Configuration.ConfigurationManager.AppSettings("smtp-username")
Dim smtppassword As String = System.Configuration.ConfigurationManager.AppSettings("smtp-password")
Dim smtpUseSSL As Boolean = IIf(System.Configuration.ConfigurationManager.AppSettings("smtp-use-ssl") = "1", True, False)
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
'client.UseDefaultCredentials = True
Dim client As SmtpClient = New SmtpClient With {
.Port = smtpport, '// 587
.Host = smtphost, '// nmail1.ballou.se
.Credentials = New Net.NetworkCredential(smtpusername, smtppassword),
.EnableSsl = smtpUseSSL
}
client.Send(msg)
Return True
Catch ex As Exception
' skicka sms om mail slutat fungera, likaså skicka meddelande i slack och skriv felet till loggfil
pellesoft.SMSFunctions.SendSMSMessage("awardspace", "00000", ex.Message.ToString & " -> " & MailTo)
pellesoft.Site.WriteToLog("Sendmail kan inte skicka mail general.vb 577 " & ex.Message.ToString & "- skickas till: " & MailTo)
HttpContext.Current.Trace.Warn("Sendmail kan inte skicka mail general.vb - försöker maila: " & MailTo)
pellesoft.Site.SendSlackMessage("error", "send mail", "sending to userid: " & pellesoft.User.CurrentUserId & "/mail: " & MailTo & ". System returns: " & ex.Message.ToString, pellesoft.Site.SlackColor.Red, "")
Throw ex
End Try
Return True
End Function