При попытке отправить после выбора нескольких пользователей или хотя бы одного из списка флажков в моей веб-форме (при получении электронных писем из LDAP) я (самопроизвольно) продолжаю получать эту ошибку - (иногда это работает, а иногда нет)и теперь не полностью)
"Transaction Failed: The Server Response from was [name of my email host is displayed here - ex: email.domain.com]
[SmtpException: Transaction failed. The server response was: email.domain.com]
System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) +1670
System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint) +226
System.Net.Mail.SmtpClient.GetConnection() +46
System.Net.Mail.SmtpClient.Send(MailMessage message) +1859
TestFormV2._Default.SendTesterEmail() in \source\repos\TestFormV2\TestFormV2\Default.aspx.cs:95
TestFormV2._Default.emailTester_Click(Object sender, EventArgs e) in \source\repos\TestFormV2\TestFormV2\Default.aspx.cs:110
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +109
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +31
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3467
Вот мой код:
using System;
using System.Web.UI;
using System.DirectoryServices;
using System.Collections.Specialized;
using System.Net.Mail;
using System.Net.Security;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.Web.UI.WebControls;
namespace TestFormV2
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
LDAPQuery();
}
protected void LDAPQuery()
{
try
{
DirectoryEntry entry = new DirectoryEntry("LDAP://123.45.678.9:123/cn=TestingCompletion,ou=Groups,dc=domain,dc=domain", "uid=username, ou=people, dc=domain,dc=domain", "password", AuthenticationTypes.None);
//List<string> GroupMembers = new List<string>(); //{ "first_last", "first_last" };
StringCollection GroupMembers = new StringCollection();
Object obj = entry.NativeObject;
//Console.WriteLine("login success");
DirectorySearcher search = new DirectorySearcher(entry);
search.PropertiesToLoad.Add("uniqueMember");
search.PropertiesToLoad.Add("uid");
search.PropertiesToLoad.Add("mail");
search.SearchScope = SearchScope.Subtree;
search.Filter = "(&(uniqueMember=*))";
//SearchResultCollection resultCollection = search.FindAll();
foreach (SearchResult result in search.FindAll())
{
ResultPropertyCollection resultProperty = result.Properties;
foreach (string GroupMemberDN in resultProperty["uniqueMember"])
{
DirectoryEntry directoryMember = new DirectoryEntry("LDAP://123.45.678.9/" + GroupMemberDN, "uid=username, ou=people, dc=domain,dc=domain", "password", AuthenticationTypes.None);
PropertyCollection DirectoryMemberProperties = directoryMember.Properties;
GroupMembers.Add(directoryMember.Properties["mail"][0].ToString());
}
}
foreach (string member in GroupMembers)
{
//UserDropDownCheckBox.Items.Add(member);
UsersEmailList.Items.Add(member);
//Console.WriteLine(member);
}
}
catch (Exception e)
{
exceptionMsg.Text = e.Message.ToString();
//Console.WriteLine(e.Message.ToString());
}
}
protected void SendTesterEmail()
{
foreach (ListItem item in UsersEmailList.Items)
{
if (item.Selected == true)
{
// Send email to selected user(s)
MailMessage mail = new MailMessage();
mail.To.Add(new MailAddress(item.Value));
mail.From = new MailAddress("user_name@email.com");
mail.Subject = "Testing Completion Form";
mail.Body = "This is a test message";
//MailAddress copy = new MailAddress("user_testing@email.com");
//mail.CC.Add(copy);
mail.IsBodyHtml = true;
mail.Priority = MailPriority.Normal;
SmtpClient client = new SmtpClient("smtp.email.com", 25);
//mail.Attachments.Add(new Attachment(pdfContents, "filename.pdf"));
client.EnableSsl = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("user_name@email.com", "mypassword");
ServicePointManager.ServerCertificateValidationCallback = delegate (object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
client.Send(mail);
SuccessOrFailMsg.Text = "Message Sent Successfully.";
//resetFields();
}
}
}
protected void emailTester_Click(object sender, EventArgs e)
{
SendTesterEmail();
//clear fields after submit
}
protected void resetFields()
{
Text1.Text = "";
systemMenu.ClearSelection();
otherSystem.Text = "";
UsersEmailList.ClearSelection();
dueDate.Text = "";
SuccessOrFailMsg.Text = "";
}
protected void resetFieldsBtn_Click(object sender, EventArgs e)
{
resetFields();
}
}
}
Я хотел бы иметь возможность отправлять нескольким пользователям из списка флажков, который у меня есть в форме (это извлекается из LDAP) однако его не работает!Если кто-то может направить меня в правильном направлении, это будет с благодарностью!