2017-07-24 4 views
0

So habe ich eine SMTP-Mail-Setup, die vor kurzem funktioniert hat.asp.net/vb.net - system.net smtp Mail funktioniert nicht

was passiert, wenn der Code von einem iframe auf einer anderen Domäne ausgeführt wird. aber der iframe befindet sich auf derselben Domain wie die SMTP-E-Mail.

zum Beispiel:

Main Site --> www.mysite.com 
    Iframe --> www.myiframe.com 

Auf dem iframe-Server der SMTP-Setup system.net mit und arbeitete bis vor kurzem. der SMTP-Server mit goddady auf Office365 der Code sieht wie folgt aus:

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]" deliveryMethod="Network"> 
     <network host="smtp.office365.com" userName="[email protected]" password="password" defaultCredentials="true" port="587" enableSsl="true" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 

Was habe ich bemerkt, dass ich musste vor kurzem alle meine E-Mails von SSL TLS ändern, um für sie auf 587. arbeiten Ich habe testete auch diese SMTP-Einstellungen auf meinem PHP-Server und sie funktionieren gut, aber mit einem wichtigen Unterschied. Ich muss TLS anstelle von SSL mit SSL definieren Ich bekomme eine fehlgeschlagene Authentifizierungsantwort.

Was ich denke, könnte passieren, obwohl enablessl aktiviert ist & soll auch TLS unterstützen es nicht mit TLS belästigen und geht nur SSL und scheitern und das ist es.

Kennt jemand eine Möglichkeit, TLS in System.net oder vielleicht einen Grund für den letzten Fehler zu erzwingen.

Wie über Kommentare angefordert:

Private Sub SendEmail() 
    Try 
     Dim smtp As New SmtpClient() 
     Dim Recipient As String = Request("e").ToString() 
     Dim name As String = Request("n").ToString() 
     Dim body As String = File.ReadAllText(ConfigurationManager.AppSettings("DataRoot") & "email.txt").Replace("[firstname]", name) 
     Dim msg As New MailMessage() 
     msg.From = New MailAddress(ConfigurationManager.AppSettings("ConfirmEmailFrom"), ConfigurationManager.AppSettings("ConfirmEmailFromName")) 
     msg.To.Add(New MailAddress(Recipient, name)) 
     msg.Subject = ConfigurationManager.AppSettings("ConfirmEmailSubject") 
     msg.Body = body 
     smtp.Send(msg) 
    Catch ex As Exception 
     siteMessage.LogMessage("Failed sending confirmation email to " & Request("e").ToString(), ex, Nothing) 
    End Try 
End Sub 
+0

können Sie Ihren Code teilen? Sie haben den Konfigurationsbereich freigegeben. –

+0

@KaushalKumarPanday erfolgt – dim

Antwort

1

In System.Net Sie TLS-Version durchsetzen können, wie unten dargestellt (C#):

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 

Dies ist jedoch abhängig von der zugrunde liegenden .NET Framework-Version, die Ihre Anwendung verwendet. Die Unterstützung für TLS v1.2 ist verfügbar in .NET 4.5 und höher.

Hier ist die MSDN-Dokumentation für diese: ServicePointManager.SecurityProtocol Property

Im SmtpClient Klasse gibt es nichts außer dem EnableSsl Eigenschaft, die Sie bereits über Config aktiviert haben.