2017-06-07 63 views
1

我有我的應用程序中的郵件系統我都用罰款,並看到它的工作。通過電子郵件發送在vb.net - SMTP服務器的問題,或通過電子郵件發送匿名?

客戶還設法發送使用程序的電子郵件,但是,一旦他們已經支付了申請,他們隨後在銷售給其他客戶。

他們剛把它與第一個客戶測試,他們在遇到問題時發送電子郵件,所以我研究了錯誤日誌,看到以下消息:

的SMTP服務器要求安全連接或客戶端未通過身份驗證。服務器響應是:5.7.57 SMTP;客戶端未通過身份驗證MAIL期間發送匿名郵件FROM [BN6PR2201CA0027.namprd22.prod.outlook.com]

現在,谷歌搜索這個確切的錯誤消息後,頂部結果是this question,其中很明顯地看到,運營機構試圖從一個硬編碼爲「emailaddress」的電子郵件地址發送消息。但是,對我來說情況並非如此。

我的代碼如下:

recipient = eMail 

     Smtp_Server.UseDefaultCredentials = False 
     Smtp_Server.Credentials = New Net.NetworkCredential(senderAdd, senderPass) 
     Smtp_Server.EnableSsl = False 
     Smtp_Server.Host = SMTPserver 

     AddHandler Smtp_Server.SendCompleted, AddressOf sendComplete 

    e_mail = New MailMessage() 
    e_mail.From = New MailAddress(senderAdd) 
    e_mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess 
    e_mail.To.Add(eMail) 
    e_mail.Subject = subj 
    e_mail.IsBodyHtml = False 
    e_mail.Body = bod 

Smtp_Server.SendAsync(e_mail, userState) 

有什麼在這裏這將導致此錯誤?如果是這樣,那是什麼? 變量都是從數據庫表中設置的,如果有任何空值,那麼系統會彈出一個消息框來提醒用戶這一點,然後退出子程序而不發送電子郵件,所以這不是一個空問題價值 - 我能想到的唯一的事情就是憑據是錯誤的,但他們理應得到3個不同的人是正確的驗證。

+0

由於提到的異常需要安全連接,因此您是否嘗試啓用SSL? 「Smtp_Server.EnableSsl = True」(SSL可以運行在不同的端口上,我的郵件通過我的網站上的gmail發送,並且SSL要求也設置端口)。 –

回答

0

您可能需要指定域。使用NetworkCredential類的this constructor並通過域。

Smtp_Server.Credentials = New Net.NetworkCredential(senderAdd, senderPass, "expectedDomainName") 

很難肯定地說,但因爲我們無法將您相同的條件下,重現此問題。

+0

Outlook的域名是什麼? smtp.outlook.com? – David