Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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# 以广告组的形式发送电子邮件_C#_.net_Email_Active Directory_Smtp - Fatal编程技术网

C# 以广告组的形式发送电子邮件

C# 以广告组的形式发送电子邮件,c#,.net,email,active-directory,smtp,C#,.net,Email,Active Directory,Smtp,在.NET中,我可以使用我拥有的广告群的身份发送电子邮件吗 我当前的代码: using (var smtp = new SmtpClient("smtp.somecompany.com")) { smtp.Credentials = CredentialCache.DefaultNetworkCredentials; var mail = new MailMessage("mygroup@somecompany.co

在.NET中,我可以使用我拥有的广告群的身份发送电子邮件吗

我当前的代码:

        using (var smtp = new SmtpClient("smtp.somecompany.com"))
        {
            smtp.Credentials = CredentialCache.DefaultNetworkCredentials;
            var mail = new MailMessage("mygroup@somecompany.com", recipients)
            {
                ...
            };

            smtp.Send(mail);
        }
我越来越

System.Net.Mail.SmtpException:邮箱不可用。服务器响应为:5.7.1客户端没有作为此发件人发送的权限

我知道我可以使用

smtp.Credentials = new NetworkCredential(...)
和密码对

但是,广告组没有密码,我认为组别名甚至不能算作用户名


那么,是否可以将电子邮件作为组发送?

广告组是安全对象,与电子邮件没有直接关系。例如,如果您有一个开发组,并且希望开发组中的任何人都可以访问该邮箱,那么使用exchange可以设置一个共享邮箱,AD组中的任何人都可以访问该邮箱。也可以将该邮箱的传出地址设置为dev@yourdomain.com.

使用示例中的代码创建共享邮箱后,将正常工作

MailMessage mail = new MailMessage();
mail.From = new System.Net.Mail.MailAddress("mygroup@somecompany.com");

// The important part -- configuring the SMTP client
SmtpClient smtp = new SmtpClient();
smtp.Port = 587;   // [1] You can try with 465 also, I always used 587 and got success
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; // [2] Added this
smtp.UseDefaultCredentials = false; // [3] Changed this
smtp.Credentials = new NetworkCredential(mail.From,  "password_here");  // [4] Added this. Note, first parameter is NOT string.
smtp.Host = "smtp.somecompany.com";            

//recipient address
mail.To.Add(new MailAddress("yyyy@xxxx.com"));

//Formatted mail body
mail.IsBodyHtml = true;


mail.Body = st;
smtp.Send(mail);
请尝试一下,并提供您的端口号,您的问题


在.NET中检查完此链接后,..

我可以使用我拥有的广告组的身份发送电子邮件吗

嗯,差不多。您必须在AD中创建/选择一个用户,然后将该用户分配给启用邮件的通用安全组。确保为组分配电子邮件地址。然后,在.net代码中,您必须作为用户之一进行身份验证,但要将mail.from更改为启用邮件的通用安全组电子邮件地址。现在,如果有人回复电子邮件,邮件将转到启用邮件的通用安全组,并将转发给组内的所有用户。Exchange需要身份验证,因此您可以选择启用邮件的安全组中的任何人作为身份验证者


如果您可以在内部使用单用户电子邮件ID(您的组织用户)发送电子邮件,但不能使用组电子邮件ID,请检查您是否为组电子邮件ID使用了正确的SMTP地址(在outlook中检查此电子邮件的属性)

正如前面回答中提到的,广告群与电子邮件没有直接关系。您可以创建联系人(电子邮件ID,但没有邮箱)和用户(带有邮箱的电子邮件ID)

在java中,我使用的是:

        String SMTP_HOST_NAME = "exchange_server";
        String SMTP_AUTH_USER = "mygroup@mydomain.com";
        String SMTP_AUTH_PWD  = "";

        Properties props = new Properties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", SMTP_HOST_NAME);
        props.put("mail.smtp.auth", "false");
注意:请检查SMTP_AUTH_PWD是否为空,以及mail.SMTP.AUTH是否为false

另外,检查邮件中继选项,特别是发送到外部域的邮件:

邮件中继选项:请与您的MS exchange团队联系,为您的服务器启用此选项

帮助链接:


启用此选项后,可能所有用户都无法向外部域发送电子邮件,这取决于您的公司策略。因此,在成功地将邮件从应用程序发送到MS Exchange后,可以在电子邮件安全设备(如cisco ironport)上阻止它。希望这会有所帮助。

您为什么需要这样做?你想知道这是否普遍可行吗?@MikroDel我想以“受监控邮箱”的形式从群中发送通知电子邮件-群成员可以收到回复。我应该为广告群填写什么密码?亲爱的NS.X。您将填写此电子邮件的密码mygroup@somecompany.com'Active Directory组没有密码,这就是问题的来源。