2012-03-16 42 views
1

が動作していないコードは次のとおりです。ホスト名のは、私は私のWinformsのVB.Netプログラムここで</p> <p>以内)SmtpClientを(使用してメールを送信しようとしています

Dim SmtpServer As New SmtpClient() 
     Dim mail As New MailMessage() 
     Dim _Attachment As String 

     If gcloUtilities.GetUser(mHostName, mEMailUser, mEMailPassword, mFromEMail) = False Then 
      Exit Sub 
     End If 
     SmtpServer.Credentials = New Net.NetworkCredential(mEMailUser, mEMailPassword) 
     SmtpServer.Port = 587 
     SmtpServer.Host = mHostName 
     mail = New MailMessage() 
     mail.From = New MailAddress(mFromEMail) 
     mail.To.Add(mfrmSendAnEmail.txtTo.Text) 
     mail.Subject = mfrmSendAnEmail.txtSubject.Text 

     _Attachment = mDirectory & "\" & gcloGlobals.DocumentName & ".pdf" 
     Dim oAttch As Attachment = New Attachment(_Attachment) 
     mail.Attachments.Add(oAttch) 

     mail.Body = mfrmSendAnEmail.txtBody.Text 
     SmtpServer.Send(mail) 

私はメールを使用していますmetaprosystemsドットコム、ユーザー名とパスワードは私が私のメールサーバーにログインするために使用するユーザー名とパスワードです。 Toアドレスが自分のドメイン内にある場合に動作します。たとえば、bob at-sign metaprosystems.comです。ドメイン外のメールに送信すると機能しません。私は私のcatchブロックでこの例外を取得:

「許可されていないメールボックス名をサーバーの応答だった:。申し訳ありませんが、そのドメインが許可されrcpthostsの私のリストにない(#5.7.1)」

をIかどうか添付ファイルを含めるかどうかは関係ありません。 問題は私のWebホスティング会社にあると思いますが、これまでのところ解決策は見当たりません。私は彼らにこれを解決するために何をするべきかについてのアドバイスが必要です。あるいは、もし私がそれを私の最後に解決できたら、それはすばらしいだろう。

答えて

0

おかげで、私のホスト会社は私に答えを与えました。私は、ユーザーとしてbobの代わりにbob at-sign metaprosystems.comを使用する必要があります。正しいメールユーザー名は、ホスト会社によって異なる場合があります。

0

これは根本的な問題ではありませんが、接続でSSLを有効にしてみてください。

SmtpServer.EnableSsl = True 

EDIT(1)また、メールサーバーがPOPを確立する必要がある場合があります。その場合には、サービスドメインの外にメッセージを中継する前に、POP-BEFORE-SMTPの形を、実装されている可能性があります あなたのメッセージを送信しようとする前にまず接続してください。 Hereは、.NETでPOP3クライアントを実装する方法に関する記事です。

+0

提案していただきありがとうございます。それは私に別の例外を与えます:リモート証明書は、検証手順に従って無効です。 –

+0

リモート証明書が自己署名されているため、ローカルマシンがそれを受け入れない可能性があります。証明書を手動でダウンロードしてインストールすることも、証明書を許可するために代理人を一時的に設定することもできます。 'ServicePointManager.ServerCertificateValidationCallback =関数(X509Certificateとしての証明書、X509Chainとしてのチェーン、SslPolicyErrorsとしてのsslPolicyErrors)True' – dthagard

0

自分のホスト名ではなく、Gmail smtpサーバーで電子メールを送信できます。

0

SMTPサーバー

だけの思考への接続を許可するようにMXレコードを追加する必要があるかもしれません...すべての提案のための

+0

すべての提案をお寄せいただきありがとうございます。私は、ユーザーとしてbobの代わりにbob at-sign metaprosystems.comを使用する必要があります。 正しい電子メールユーザー名は、ホスト企業によって異なる場合があります。 –

関連する問題