2017-06-07 20 views
1

私は自分のアプリケーションで使用している電子メールシステムを持っています。vb.netでの電子メール - SMTPサーバーの問題、または匿名の電子メール?

お客様はプログラムを使用して電子メールを送信することもできましたが、アプリケーションの支払いを済ませた後、他の顧客に電子メールを販売しています。

彼らはただ最初の顧客でテストするには、それを撮影したし、彼らは電子メールを送信するトラブルを抱えているので、私はエラーログを調査し、次のメッセージを見た:

をSMTPサーバーはセキュリティで保護さを必要としクライアントが認証されていませんでした。サーバーの応答は5.7.57 SMTPでした。クライアントは今[BN6PR2201CA0027.namprd22.prod.outlook.com]

、MAIL FROMの間に匿名のメールを送信するために認証されなかった、この正確なエラーメッセージをGoogle検索した後、上位の結果は、それがいることを見ることは明らかですした、this questionましたOPは "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) 

は、このエラーの原因とされるだろう、ここで何がありますか?もしそうなら、それは何ですか? 変数はすべてデータベーステーブルから設定され、ヌル値がある場合、システムはメッセージボックスをポップしてユーザに警告し、サブルーチンを終了して電子メールを送信しないので、nullで問題にはなりません値 - 私が考えることができる唯一のことは、資格情報が間違っているということですが、彼らは正しいと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

関連する問題