0

わかりましたので、テキストボックスにメールを入力するユーザーにメールを送信しようとしています。私は何をすべきかについての基本的な考えを持っていますが、CMTPClient()、資格情報、および送信元をどこに置くべきか混乱しています。どのメールがそこに送られるべきか。メールアドレスと資格情報を入力しようとしましたが、「SMTP サーバーには安全な接続が必要であるか、クライアントが認証されていません」というエラーが表示され続けます。ここに私のコードがあります

        Try
        Dim username As String
        username = TextBox1.Text
        Dim SmtpServer As New SmtpClient("smtp.gmail.com")
        Dim mail As New MailMessage()
        SmtpServer.Credentials = New System.Net.NetworkCredential("what username goes 
        here", "what password goes here")
        SmtpServer.Port = 587
        mail = New MailMessage()
        mail.From = New MailAddress("what email should i put here")
        mail.To.Add(username)
        mail.Subject = "Qustions"
        mail.Body = "This is for testing your mother"
        SmtpServer.Send(mail)
        MsgBox("mail send")
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub
4

2 に答える 2

1

SmtpServer.EnableSsl = True電話する前に使うSmtpServer.Send(mail)

「SMTP サーバーは安全な接続を必要とするか、クライアントが認証されませんでした」

SMTP サーバーが SSL 対応 (暗号化) 接続で動作することを意味します。

于 2013-04-18T00:23:15.560 に答える
0

Gmail は、すべての人が使用できるようになっているだけではないことに注意してください。それ以外の場合は、スパムです。現在、スパマーは、使用可能な smtp ゲートウェイを見つけたり作成したりするために、あらゆる種類のフープを飛び越えなければなりません。主要なプロバイダーのいずれかが開いたままになっている場合は、現在受信しているすべてのスパムを考えて、約 1000 倍してください。

そのため、smtp サーバーを使用するには gmail のアカウントが必要です。さらに、1 日に約 400 通以上の電子メールを送信する場合は、その電子メール用の特別なアカウントか、評判の良い特別な大量メール送信者のアカウントが必要になる場合があります。これらのメーラーはメッセージごとに料金を請求しますが、それだけの価値はあります。そうしないと、1 日に数件以上のメッセージが通知され、送信したものがスパムとしてフィルター処理されることになるためです。宛先のメールホストもそこでチェックされます。あなたは基本的に迷惑料を払って、あなたのメッセージが本格的であり、大量のジャンクではないことを確認しています.

それはさておき、音量が十分に小さいことがわかっていて、有効な Gmail アカウントを取得した後は、いくつかの変更が必要なだけです。

Try
    Dim SmtpServer As New SmtpClient("smtp.gmail.com")
    Dim mail As New MailMessage()
    SmtpServer.Credentials = New System.Net.NetworkCredential("gmailusername@gmail.com", "your gmail password")
    SmtpServer.EnableSsl = True
    SmtpServer.Port = 587
    mail = New MailMessage()
    mail.From = New MailAddress("gmailusername@gmail.com")
    mail.To.Add(TextBox1.Text)
    mail.Subject = "Questions"
    mail.Body = "This is for testing your mother"
    SmtpServer.Send(mail)
    MsgBox("mail sent")
Catch ex As Exception
    MsgBox(ex.ToString)
End Try
于 2013-04-18T00:59:46.937 に答える