Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#相当于java';s mail.smtp.sendpartial属性?_C#_.net - Fatal编程技术网

C#相当于java';s mail.smtp.sendpartial属性?

C#相当于java';s mail.smtp.sendpartial属性?,c#,.net,C#,.net,我正在寻找C#等效的mail.smtp.sendparticle属性 如果设置为true,并且消息具有一些有效和一些无效地址,则仍要发送消息,并使用SendFailedException报告部分故障。如果设置为false(默认值),则如果存在无效(服务器上不存在邮箱)收件人地址,则不会将邮件发送给任何收件人 public static void sendMails(string ptxtSubject, string ptxtBody) { string txtTo = "valid1

我正在寻找C#等效的mail.smtp.sendparticle属性

如果设置为true,并且消息具有一些有效和一些无效地址,则仍要发送消息,并使用SendFailedException报告部分故障。如果设置为false(默认值),则如果存在无效(服务器上不存在邮箱)收件人地址,则不会将邮件发送给任何收件人

public static void sendMails(string ptxtSubject, string ptxtBody)
{
    string txtTo = "valid1@aaa.com,valid2@aaa.com,invalid1@aaa.com";
    string txtFrom = "valid@aaa.com";
    string txtSubject = ptxtSubject;
    string txtBody = ptxtBody;

    MailMessage mail = new MailMessage();
    mail.To = txtTo;
    mail.From = txtFrom;
    mail.Subject = txtSubject;
    mail.Body = txtBody;

    try
    {
        SmtpMail.SmtpServer ="smtp.aaa.com";
        SmtpMail.Send(mail);
    }
    catch (Exception ex)
    {
       //log the exception
       throw;  
    }
}
这是我正在使用的C#代码,但即使只有一个电子邮件地址无效,它也无法发送电子邮件


Google没有提供帮助,请提供任何提示。

由于.NET不提供MailAddress.TryParse,并且使用不正确的邮件格式创建MailAddress类的新实例引发异常,我建议您使用:

另一个更丑陋的选择是尝试捕获无效邮件地址的创建/分配 . 我们在企业邮件程序集中采用这种方式,因为我们不这样做 想要使用第三方程序集,它工作正常

类似的问题有助于:


这里的答案取决于您所说的无效

根据上面的示例,
invalid1@aaa.com
实际上是一个有效的电子邮件地址

目前在C#中,确保发送电子邮件所用的电子邮件地址格式有效的唯一方法是尝试创建一个MailAddress实例,方法是将字符串地址传递给它,并捕获
FormatException
,如下所示:

string email = "invalid1@aaa.com";
System.Net.Mail.MailAddress address = null;
try
{
    address = new MailAddress(email);
}
catch (FormatException fex)
{
    // do something about it here
}
我想你想知道的是
invalid1@aaa.com
,例如,有人在服务器上拥有该地址的帐户,可以登录并查看邮件

简单的回答是,您无法验证这一点,如果java类确实告诉了您这一点,我将高度质疑java类给出的响应的完整性。如果邮件服务器做到了这一点,垃圾邮件发送者对服务器进行攻击以寻找随机、有效的电子邮件地址就太微不足道了


如果你想变得更有趣,你可以验证域名“aaa.com”是否存在,但这是你能确定的范围。

你说的“它失败”是什么意思?它会引发异常吗?如果有的话-哪一个?或者它不发送任何电子邮件?另外,您所说的“无效电子邮件地址”是什么意思?你的意思是格式不正确,或者某个服务器上没有与该电子邮件帐户关联的邮件收件箱?谢谢回复。它甚至无法将电子邮件发送到其他有效的电子邮件地址。无效的电子邮件地址意味着服务器上没有收件箱。