У меня была точно такая же проблема, и, наконец, она была решена.
Я поместил все зависимые DLL в ту же папку, где был сохранен mylib.dll, и убедитесь, что JAVA Compiler смог его найти (если в пути компиляции нет mylib.dll, будет ошибка сообщая об этом во время компиляции). Важно отметить, что вы должны убедиться, что все зависимые библиотеки имеют одну и ту же версию с mylib.dll, например, если ваша версия mylib.dll является версией, тогда вы также должны поместить в нее версию всех зависимых библиотек ,
Надеюсь, это поможет другим, кто столкнулся с одной и той же проблемой.
EDIT: Super Redux Version
Попробуйте порт 587 вместо 465. Порт 465 технически не рекомендуется.
После того, как я понял, что пакет обнюхивает пакет. Во-первых, вот короткий ответ:
.NET SmtpClient
поддерживает только шифрование через STARTTLS. Если установлен флаг EnableSsl
, сервер должен ответить на EHLO с помощью STARTTLS, иначе он выдает исключение. Дополнительную информацию см. В документации MSDN .
Во-вторых, быстрый урок истории SMTP для тех, кто наткнется на эту проблему в будущем:
Назад в день, когда услуги хотели также предлагать шифрование, им был назначен другой номер порта, и на этом номере порта они немедленно инициировали SSL-соединение. Со временем они поняли, что глупо тратить два номера портов на одну услугу, и они разработали способ предоставления сервисов для обеспечения открытого текста и шифрования в том же порту с использованием STARTTLS. Коммуникация начнет использовать открытый текст, а затем используйте команду STARTTLS для обновления до зашифрованного соединения. STARTTLS стал стандартом для шифрования SMTP. К сожалению, как всегда бывает, когда новый стандарт реализован, существует мешанина совместимости со всеми клиентами и серверами.
В моем случае мой пользователь пытался подключить программное обеспечение к серверу который заставлял немедленное соединение SSL, которое является унаследованным методом, который не поддерживается Microsoft в .NET.
Поддерживает ли ваша библиотека SMTP зашифрованное соединение? Почтовый сервер может ожидать безопасного соединения TLS и, следовательно, закрытие соединения в отсутствие подтверждения TLS
SmtpClient
, она поддерживает encrytpion, сервер требует шифрования, и я установил client.EnableSssl = true;
. Хотя я думаю, что буду продолжать это немного дальше с Wireshark.
– Jake C
27 November 2013 в 01:41
Измените порт с 465 до 587, и он будет работать.
Если все вышеприведенные решения не работают для вас, попробуйте обновить следующий файл на вашем сервере (по публикации я имею в виду, а сборка до этого будет полезна).
bin-> projectname.dll
После обновления вы увидите эту ошибку. как я решил с этим решением.
Чтобы поднять то, что было упомянуто в комментарии, я делал все, что упоминалось в этой теме, и вычеркиваю ... потому что моя была в петле, которую можно было запустить снова и снова; после первого раза через цикл, это иногда терпит неудачу. Всегда работал в первый раз через цикл.
Чтобы быть ясным: цикл включает в себя создание SmtpClient, а затем делает .Отправить с нужными данными. SmtpClient был создан внутри блока try / catch, чтобы поймать ошибки и убедиться, что объект был разрушен до нижней части цикла.
В моем случае решение заключалось в том, чтобы убедиться, что SmtpClient удален после каждого раза в цикле (либо с помощью инструкции (), либо путем ручного управления). Даже если объект SmtpClient неявно уничтожается в цикле, .NET, похоже, оставляет материал, находящийся вокруг конфликта со следующей попыткой.
Возможно, вам также придется изменить настройку «менее безопасных приложений» в своей учетной записи Gmail. EnableSsl, используйте порт 587 и включите «менее безопасные приложения». Если вы используете Google менее защищенную часть приложений, есть страницы справки Google, которые свяжут вас прямо со страницей вашей учетной записи. Это была моя проблема, но теперь все работает благодаря всем ответам выше.
Если вы используете SMTP-сервер в том же поле и ваш SMTP привязан к IP-адресу вместо «Any Assigned», он может выйти из строя, потому что он пытается использовать IP-адрес (например, 127.0.0.1), который SMTP в настоящее время не работает.
Для всех, кто наткнулся на это сообщение, ищет решение, и вы настроили SMTP sendgrid через Azure.
Имя пользователя не является именем пользователя, которое вы установили, когда вы Я создал объект sendgrid в лазури. Чтобы найти свое имя пользователя;
Надеюсь, что это поможет!
//Try this out... Port 465 is not there anymore for use
string emailFrom = "sender email here";
string recieverEmail ="reciever email here";
string subject = "subject here";
string body = "message here";
MailMessage maile = new MailMessage(emailFrom, recieverEmail, subject,body);
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.Credentials = new System.Net.NetworkCredential("senders gmail account username here", "senders gmail account password here");
client.EnableSsl = true;
Попробуйте следующее: Вот код, который я использую, чтобы отправлять электронные письма нескольким пользователям.
public string gmail_send()
{
using (MailMessage mailMessage =
new MailMessage(new MailAddress(toemail),
new MailAddress(toemail)))
{
mailMessage.Body = body;
mailMessage.Subject = subject;
try
{
SmtpClient SmtpServer = new SmtpClient();
SmtpServer.Credentials =
new System.Net.NetworkCredential(email, password);
SmtpServer.Port = 587;
SmtpServer.Host = "smtp.gmail.com";
SmtpServer.EnableSsl = true;
mail = new MailMessage();
String[] addr = toemail.Split(','); // toemail is a string which contains many email address separated by comma
mail.From = new MailAddress(email);
Byte i;
for (i = 0; i < addr.Length; i++)
mail.To.Add(addr[i]);
mail.Subject = subject;
mail.Body = body;
mail.IsBodyHtml = true;
mail.DeliveryNotificationOptions =
DeliveryNotificationOptions.OnFailure;
// mail.ReplyTo = new MailAddress(toemail);
mail.ReplyToList.Add(toemail);
SmtpServer.Send(mail);
return "Mail Sent";
}
catch (Exception ex)
{
string exp = ex.ToString();
return "Mail Not Sent ... and ther error is " + exp;
}
}
}
SmtpClient
также является одноразовым, поэтому его следует обернуть в блок using
– jocull
10 April 2014 в 19:14