1

SmtpClient.Send Methodを使用して電子メールを送信していますが、存在しない電子メール アカウントに送信しようとすると、Send メソッドは例外をスローしません。受信者のメール アドレスが有効であること、またはメールが届かないことを確認するにはどうすればよいですか? 、またはこの問題を検出します。

コード:

            Properties.Settings appSettings = new Properties.Settings();
            MailMessage message = new MailMessage();

            message.From = new MailAddress(appSettings.senderMail);        
            message.Subject = appSettings.mailsubj;
            message.Body = appSettings.mailbody;
            Attachment attach = new Attachment(sOutput);
            message.Attachments.Add(attach);

            SmtpClient client = new SmtpClient(appSettings.SMTP);

            client.SendCompleted += this.SendCompletedCallback;
            foreach (String clientEmail in clientEmailList)
            {
                message.To.Clear();
                message.To.Add(clientEmail);
                //client.Send(message);

                try
                {
                    client.Send(message);
                    AddToLog(String.Format("\t{0}{1}", Properties.Resources.ResourceManager.GetString("MAIL_SEND_SUCCESS"), clientEmail));
                }
                catch (SmtpFailedRecipientException ex)
                {
                    AddToLog(String.Format("\t{0}{1}:\n\t{2}", Properties.Resources.ResourceManager.GetString("MAIL_SEND_ERROR"), clientEmail, ex.Message));
                }
                catch (SmtpException smtp_Ex)
                {
                    AddToLog(String.Format("\t{0}{1}:\t{2}", Properties.Resources.ResourceManager.GetString("MAIL_SEND_ERROR"), clientEmail, "Cannot connect to SMTP server."));
                }
                catch (Exception ex)
                {
                    AddToLog(String.Format("\t{0}{1}:\n\t{2}", Properties.Resources.ResourceManager.GetString("MAIL_SEND_ERROR"), clientEmail, ex.Message));
                }
              //  client.SendAsync(message, clientEmail);
            }
4

1 に答える 1

3

SMTP クライアントがメッセージを送信するとき、このアドレスが SMTP サーバーのドメインとは異なるドメインに属している場合、メール アドレスの有効性については何も知りません。

これは、SMTP サーバーが別のドメインから受信者にメッセージを配信しようとした後にのみ認識されます。通常、この場合、エラーのメール メッセージが届きます。

于 2013-10-31T18:36:45.603 に答える