Я должен отправлять письма, используя мое веб-приложение. Учитывая приведенный ниже код, показывающий The SMTP server requires a secure connection or the client was not authenticated. The server response was:
The SMTP server requires a secure connection or the client was not authenticated. The server response was:
5.7.57 SMTP; Клиент не прошел проверку подлинности для отправки анонимной почты во время MAIL FROM.
Помоги мне найти правильное решение. Спасибо.
Код:
protected void btnsubmit_Click(object sender, EventArgs e)
{
Ticket_MailTableAdapters.tbl_TicketTableAdapter tc;
tc = new Ticket_MailTableAdapters.tbl_TicketTableAdapter();
DataTable dt = new DataTable();
dt = tc.GetEmail(dpl_cate.SelectedValue);
foreach (DataRow row in dt.Rows)
{
string eml = (row["Emp_Email"].ToString());
var fromAddress = "emailAddress";
var toAddress = eml;
const string fromPassword = "*****";
string body = "Welcome..";
// smtp settings
var smtp = new System.Net.Mail.SmtpClient();
{
smtp.Host = "smtp.office365.com";
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.UseDefaultCredentials = false;
smtp.Timeout = 600000;
}
// Passing values to smtp object
smtp.Send(fromAddress, toAddress, subject, body);
}
}
}
Ответ 1
Я не могу быть хорошим программистом, но вы, кажется, передаете адрес From как «emailAddress», который не является надлежащим адресом электронной почты, а для Office365 он должен быть реальным адресом в системе Office365.
Вы можете подтвердить, что если вы жестко указываете свой адрес электронной почты как пароль от вашего офиса и вашего офиса 365. Не оставляйте его там, хотя, конечно.
Ответ 2
@Reshma. Если вы еще не поняли это, вот ниже, что я пробовал, и он решил ту же проблему.
-
Убедитесь, что NetworkCredentials установлены правильно. Например, в моем случае, поскольку это был офис SMTP, идентификатор пользователя должен был использоваться в NetworkCredential вместе с именем домена, а не фактическим идентификатором электронной почты.
-
Сначала нужно установить значение «UseDefaultCredentials» в false, а затем установить учетные данные. Если после этого вы установите «UseDefaultCredentials», он сбрасывает значение NetworkCredential в null.
Надеюсь, что это поможет.
Ответ 3
Я использую эту проблему.
Добавьте домен, который разрешил его.
mySmtpClient.Credentials = New System.Net.NetworkCredential("[email protected]", "password", "domain.com")
Ответ 4
Я потратил слишком много времени на это, и решение было очень простым.
Мне пришлось использовать мой «MX» в качестве хоста и порта 25.
var sClient = new SmtpClient("domain-com.mail.protection.outlook.com");
var message = new MailMessage();
sClient.Port = 25;
sClient.EnableSsl = true;
sClient.Credentials = new NetworkCredential("user", "password");
sClient.UseDefaultCredentials = false;
message.Body = "Test";
message.From = new MailAddress("[email protected]");
message.Subject = "Test";
message.CC.Add(new MailAddress("[email protected]"));
sClient.Send(message);
Ответ 5
Основные две причины, только упомянутые выше комментарии
- Установленные вами NetworkCredentials должны быть правильными. Подтвердите с помощью попытки фактически войти в учетную запись.
- Сначала нужно установить
UseDefaultCredentials
в false, а затем установить учетные данные
Или
Положитеsmtp.UseDefaultCredentials = false;
надsmtp.Credentials assignment
.
Ответ 6
Это старый вопрос, но поскольку это первый результат в google для этой ошибки, я думал, что буду обновлять свой прогресс в этой проблеме.
Я потратил слишком много часов на эту проблему. В итоге мне пришлось несколько раз менять пароль учетной записи Office 365, пока мой код не смог отправить электронные письма.
Не нужно было вносить какие-либо изменения в код.
Ответ 7
Если вы используете офис 365, выполните следующие действия:
- проверьте время истечения срока действия пароля, используя оболочку питания Azure: Get-MsolUser -All | выберите DisplayName, LastPasswordChangeTimeStamp
- Измените пароль, используя новый пароль (а не старый). Вы можете вернуться к старому паролю, но вам нужно дважды его изменить.
Надеюсь, это поможет!
Ответ 8
Я изменил пароль Office365, а затем попытался отправить тестовое письмо, и это сработало как прелесть для меня.
Я использовал переднюю часть (вариант почтовой базы данных) и настройки как номер порта 587 smtp.office365.com и проверил опцию безопасного подключения. используйте базовую аутентификацию и сохраните учетные данные. Надеюсь, это окажется полезным для кого-то.
Ответ 9
Начало работы после добавления свойства:
mail.smtp.starttls.enable=true
Использование:
mail.smtp.host=smtp.office365.com
mail.smtp.port=587
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true
[email protected]
mail.smtp.password=xxx
[email protected]
Ответ 10
В моем случае я использовал конструктор MailMessage, который принимает две строки (от, от) и получает ту же ошибку. Когда я использовал конструктор по умолчанию, а затем добавил объект MailAddress в свойство To MailMessage, он работал нормально.
Ответ 11
В моем случае двухфакторная аутентификация была включена для учетной записи FROM в Office 365. После того, как это было отключено, электронное письмо было успешно отправлено.
I have to send mails using my web application. Given the below code showing The SMTP server requires a secure connection or the client was not authenticated. The server response was:
5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM.
Help me to find a proper solution. Thank you.
Code:
protected void btnsubmit_Click(object sender, EventArgs e)
{
Ticket_MailTableAdapters.tbl_TicketTableAdapter tc;
tc = new Ticket_MailTableAdapters.tbl_TicketTableAdapter();
DataTable dt = new DataTable();
dt = tc.GetEmail(dpl_cate.SelectedValue);
foreach (DataRow row in dt.Rows)
{
string eml = (row["Emp_Email"].ToString());
var fromAddress = "emailAddress";
var toAddress = eml;
const string fromPassword = "*****";
string body = "Welcome..";
// smtp settings
var smtp = new System.Net.Mail.SmtpClient();
{
smtp.Host = "smtp.office365.com";
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.UseDefaultCredentials = false;
smtp.Timeout = 600000;
}
// Passing values to smtp object
smtp.Send(fromAddress, toAddress, subject, body);
}
}
}
Lewis86
5116 silver badges15 bronze badges
asked May 20, 2015 at 7:20
4
@Reshma- In case you have not figured it yet, here are below things that I tried and it solved the same issue.
-
Make sure that NetworkCredentials you set are correct. For example in my case since it was office SMTP, user id had to be used in the NetworkCredential along with domain name and not actual email id.
-
You need to set «UseDefaultCredentials» to false first and then set Credentials. If you set «UseDefaultCredentials» after that it resets the NetworkCredential to null.
Hope it helps.
answered Jul 8, 2015 at 10:19
NavneetNavneet
4313 silver badges2 bronze badges
2
You seem to be passing the From
address as emailAddress
, which is not a proper email address. For Office365 the From
needs to be a real address on the Office365 system.
You can validate that if you hardcode your email address as the From
and your Office 365 password.
Don’t leave it there though of course.
answered Jun 30, 2015 at 19:38
Joe VargasJoe Vargas
4024 silver badges3 bronze badges
I spent way too much time on this and the solution was super simple.
I had to use my «MX» as the host and port 25.
var sClient = new SmtpClient("domain-com.mail.protection.outlook.com");
var message = new MailMessage();
sClient.Port = 25;
sClient.EnableSsl = true;
sClient.Credentials = new NetworkCredential("user", "password");
sClient.UseDefaultCredentials = false;
message.Body = "Test";
message.From = new MailAddress("test@test.com");
message.Subject = "Test";
message.CC.Add(new MailAddress("dude@good.com"));
sClient.Send(message);
answered May 24, 2016 at 14:28
Ron RebennackRon Rebennack
2,5571 gold badge22 silver badges16 bronze badges
8
I use to have the same problem.
Add the domain solved it..
mySmtpClient.Credentials = New System.Net.NetworkCredential("email@domain.com", "password", "domain.com")
answered Nov 2, 2016 at 12:55
Zvi RedlerZvi Redler
1,7381 gold badge17 silver badges28 bronze badges
2
In my case, 2 Factor Authentication was turned on for the FROM account in Office 365. Once that was turned off, the email sent successfully.
answered Nov 19, 2018 at 17:16
DanielaDaniela
6471 gold badge10 silver badges25 bronze badges
1
Main two reasons only as mentioned in above comments
- NetworkCredentials you set should be correct. Verify with try actually signing into the account.
- You need to set
UseDefaultCredentials
to false first and then set Credentials
Or
Putsmtp.UseDefaultCredentials = false;
above thesmtp.Credentials assignment
.
answered Feb 23, 2016 at 7:50
AnkushAnkush
1111 silver badge6 bronze badges
0
In my case, I followed the following 3 steps and it worked.
If you are getting one of the following errors:
535 5.7.3 Authentication unsuccessful
5.7.57 Client not authenticated to send mail
There are a few things you should check:
-
Enable Client SMTP submission on the licensed mailbox being used:
From Microsoft 365 Admin Center, go to Active Users and select the user.
Go to the Mail tab.
In the Email apps section, select Manage email apps.
Verify that the Authenticated SMTP setting is checked (enabled).
Select Save changes. -
Disable Multi-Factor Authentication (MFA) on the licensed mailbox being used:
In the Microsoft 365 admin center, in the left navigation menu, choose Users > Active users.
On the Active user’s page, choose Multi-Factor Authentication.
On the Multi-Factor Authentication page, select the user and disable the Multi-Factor Authentication status. -
Disable the Azure Security Defaults by toggling the Enable Security Defaults to No:
Sign in to the Azure portal as a Security administrator, Conditional Access administrator, or Global administrator.
Browse to Azure Active Directory > Properties.
Select Manage security defaults.
Set the Enable security defaults to toggle to No.
Select Save.
Microsoft Reference Link
answered Jul 9, 2021 at 6:40
1
This is an old question but since this is the first result in google for this error, I thought I would update my progress in this issue.
I spent way too may hours on this issue. In the end I had to change my Office 365 account’s password few times until my code succeeded in sending emails.
Didn’t have to make any changes in code.
answered Nov 1, 2016 at 9:57
SpitzSpitz
7031 gold badge9 silver badges17 bronze badges
1
If you are using office 365 follow this steps:
- check the password expiration time using Azure power shell :Get-MsolUser -All | select DisplayName, LastPasswordChangeTimeStamp
- Change the password using a new password (not the old one). You can eventually go back to the old password but you need to change it twice.
Hope it helps!
answered Jul 10, 2017 at 9:18
Matteo ContaMatteo Conta
1,41312 silver badges17 bronze badges
Probably the password of the account that you trying to send e-mail is expired. Just check your password policy expire date.
answered Sep 24, 2020 at 10:53
bozokbozok
412 bronze badges
In my case I was using the MailMessage constructor that takes two strings (to, from) and getting the same error. When I used the default constructor and then added a MailAddress object to the To property of the MailMessage it worked fine.
answered Dec 15, 2017 at 14:42
horatius83horatius83
3832 silver badges8 bronze badges
1
If you reorder your code this way, it should work:
SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(mailOut, pswMailOut);
client.Port = 587; // 25 587
client.Host = "smtp.office365.com";
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
MailMessage mail = new MailMessage();
mail.From = new MailAddress(mailOut, displayNameMailOut);
mail.To.Add(new MailAddress(mailOfTestDestine));
mail.Subject = "A special subject";
mail.Body = sb.ToString();
client.Send(mail);
answered Nov 17, 2019 at 0:28
I changed the Office365 password and then tried to send a test email and it worked like a charm for me.
I used the front end (database mail option) and settings as smtp.office365.com port number 587 and checked the secure connection option. use basic authentication and store the credentials. Hope this turns out useful for someone.
answered Jul 13, 2017 at 5:10
In my situation, our IT department made MFA mandatory for our domain. This means we can only use option 3 in this Microsoft article to send email. Option 3 involves setting up an SMTP relay using an Office365 Connector.
answered Sep 15, 2020 at 22:32
carlin.scottcarlin.scott
6,0043 gold badges29 silver badges34 bronze badges
Try resetting your password for the email used. Had similar issue, and got it fixed only after changing password.
answered Feb 23, 2021 at 14:25
VithuVithu
1311 silver badge7 bronze badges
For us it failed this way but only from the servers (Azure) not from the developer machines.
It turned out that the Office365 admin required MFA when accessing office365 from outside of the corporate country.
Our production server was in Ireland but the dev machines where in Sweden -> confusion… The admin turned of MFA for our sending account -> works.
answered Mar 31, 2022 at 14:34
Hans KarlsenHans Karlsen
2,2271 gold badge15 silver badges15 bronze badges
In my case the problem was solved by dependency update 1.4 -> 1.4.7
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</dependency>
answered Apr 21 at 14:25
bausovbausov
3772 silver badges12 bronze badges
Started working after adding property:
mail.smtp.starttls.enable=true
Using:
mail.smtp.host=smtp.office365.com
mail.smtp.port=587
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.user=xxx@example.com
mail.smtp.password=xxx
mail.smtp.from=yyy@example.com
answered Sep 14, 2017 at 11:34
4
Set the User default credentials to true
:
smtp.UseDefaultCredentials = True;
Before that, input your credential:
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
This should work fine.
answered Feb 14, 2019 at 17:46
Форум программистов Vingrad
Модераторы: gambit |
Поиск: |
|
не могу отправить email с System.Web.Mail.SmtpMail |
Опции темы |
jxr |
|
||
Опытный Профиль Репутация: нет
|
Вот симпл отправител СМТП протоколом !
Что здесь не так ? |
||
|
|||
arilou |
|
||
Великий МунаБудвин Профиль
Репутация: 3
|
1) Приведите пожалуйста полный текст exception’а ——————— |
||
|
|||
jxr |
|
||
Опытный Профиль Репутация: нет
|
И так можна ! Я http://www.systemwebmail.com сайт но не мог понять что же такое |
||
|
|||
jxr |
|
||
Опытный Профиль Репутация: нет
|
Может так ! Значить так user_a отправляеть письмо user_b. В таком случае в программе SmtpMail.SmtpServer должен быт у SmtpServer user_b. ДА ! |
||
|
|||
mr.DUDA |
|
||
3D-маньяк Профиль
Репутация: 2
|
Вот код, чтобы посмотреть подробное сообщение от сервера:
к примеру, у меня было: «Сервер отклонил адрес отправителя. Отклик сервера: 575 [email protected] sender requires authentication». Проблема решается выставлением SMTP-аутентификации. P.S. P.S. (2) ——————— |
||
|
|||
jxr |
|
||
Опытный Профиль Репутация: нет
|
Вот Exception’s ! e.InnerException.InnerException.ToString() |
||
|
|||
mr.DUDA |
|
||
3D-маньяк Профиль
Репутация: 2
|
В чём проблема ? Прочитать еррор на английском ?
——————— |
||
|
|||
|
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс «транслит» если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
мне нужно отправить почту с помощью моего веб-приложения. Ниже приведен код, показывающий The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
ошибка.
Помоги мне найти правильное решение. Спасибо.
код:
protected void btnsubmit_Click(object sender, EventArgs e)
{
Ticket_MailTableAdapters.tbl_TicketTableAdapter tc;
tc = new Ticket_MailTableAdapters.tbl_TicketTableAdapter();
DataTable dt = new DataTable();
dt = tc.GetEmail(dpl_cate.SelectedValue);
foreach (DataRow row in dt.Rows)
{
string eml = (row["Emp_Email"].ToString());
var fromAddress = "emailAddress";
var toAddress = eml;
const string fromPassword = "*****";
string body = "Welcome..";
// smtp settings
var smtp = new System.Net.Mail.SmtpClient();
{
smtp.Host = "smtp.office365.com";
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.UseDefaultCredentials = false;
smtp.Timeout = 600000;
}
// Passing values to smtp object
smtp.Send(fromAddress, toAddress, subject, body);
}
}
}
10 ответов
Я не могу быть хорошим программистом, но вы, похоже, передаете адрес From как «emailAddress», который не является правильным адресом электронной почты, а для Office365 from должен быть реальным адресом в системе Office365.
вы можете проверить это, если вы жестко закодируете свой адрес электронной почты в качестве пароля from и office 365. Не оставляйте его там, хотя конечно.
@Reshma-если вы еще не поняли, вот ниже вещи, которые я пробовал, и он решил ту же проблему.
-
убедитесь, что NetworkCredentials вы установили правильно. Например, в моем случае, поскольку это был office SMTP, идентификатор пользователя должен был использоваться в NetworkCredential вместе с доменным именем, а не фактическим идентификатором электронной почты.
-
вам нужно сначала установить» UseDefaultCredentials » в false, а затем установить учетные данные. Если вы установите «UseDefaultCredentials» после этого сбрасывает NetworkCredential в null.
надеюсь, что это помогает.
Я потратил слишком много времени на это, и решение было очень простым.
Мне пришлось использовать мой » MX » в качестве хоста и порта 25.
var sClient = new SmtpClient("domain-com.mail.protection.outlook.com");
var message = new MailMessage();
sClient.Port = 25;
sClient.EnableSsl = true;
sClient.Credentials = new NetworkCredential("user", "password");
sClient.UseDefaultCredentials = false;
message.Body = "Test";
message.From = new MailAddress("test@test.com");
message.Subject = "Test";
message.CC.Add(new MailAddress("dude@good.com"));
sClient.Send(message);
основные две причины только, как указано в комментариях выше
- NetworkCredentials, которые вы установили, должны быть правильными. Проверьте, с попробуйте войти в учетную запись.
- необходимо указать
UseDefaultCredentials
сначала false, а затем установить учетные данные
Или
Положиsmtp.UseDefaultCredentials = false;
вышеsmtp.Credentials assignment
.
У меня такая же проблема.
добавить домен решил его..
mySmtpClient.Credentials = New System.Net.NetworkCredential("email@domain.com", "password", "domain.com")
Это старый вопрос, но так как это первый результат в google для этой ошибки, я думал, что обновлю свой прогресс в этой проблеме.
Я тоже потратил майские часы на этот вопрос. В конце концов мне пришлось изменить пароль учетной записи Office 365 несколько раз, пока мой код не удалось отправить электронные письма.
не пришлось вносить никаких изменений в код.
Если вы используете office 365, выполните следующие действия:
- проверьте срок действия пароля с помощью Azure power shell: Get-MsolUser-All / выберите DisplayName, LastPasswordChangeTimeStamp
- изменить пароль, используя новый пароль (не старый). Вы можете в конечном итоге вернуться к старому паролю, но нужно дважды менять.
надеюсь, что это помогает!
начал работать после добавления недвижимости:
mail.smtp.starttls.enable=true
использование:
mail.smtp.host=smtp.office365.com
mail.smtp.port=587
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.user=xxx@example.com
mail.smtp.password=xxx
mail.smtp.from=yyy@example.com
Я изменил пароль Office365, а затем попытался отправить тестовое письмо, и это сработало как шарм для меня.
Я использовал передний конец (опция database mail) и настройки как smtp.office365.com номер порта 587 и проверил опцию безопасного подключения. используйте обычную проверку подлинности и сохраните учетные данные. Надеюсь, это кому-то пригодится.
в моем случае я использовал конструктор MailMessage, который принимает две строки (to, from) и получает ту же ошибку. Когда я использовал конструктор по умолчанию, а затем добавил объект MailAddress в свойство To MailMessage, он работал нормально.
Rather than delay the release of updates by blocking on pending translations, updates could be released despite outstanding translations — instead just showing the English strings for those that haven’t been translated. So on upgrade users of the language would find that their experience goes from 100% localised to (e.g.) 95% localised; no need to throw the baby out with the bathwater by dropping the language entirely.
Then, when the missing 5% translations are provided, a patch release (in the sense of semver.org) could be issued, bringing things back to 100%. Cunningham’s Law may apply here too in that other users of the language might volunteer translations when they encountered the untranslated strings.
A language would be dropped only if coverage became and remained incomplete for several consecutive releases.
And hopefully issuing partially translated releases wouldn’t be necessary for most releases anyway because translations would be requested/provided on a per change basis rather than leaving them all until just before a release.