Saya ingin mengirim email dari aplikasi saya dan saya telah menulis kode berikut untuk mengirim email
MailMessage msg = new MailMessage();
msg.From = new MailAddress("mymailid");
msg.To.Add("receipientid");
msg.Subject = "test";
msg.Body = "Test Content";
msg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("mymailid", "mypassword", "smtp.gmail.com");
client.Host = "smtp.gmail.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.UseDefaultCredentials = true;
client.Send(msg);
Saya menjalankannya di localhost jadi kesalahan apa yang saya lakukan untuk mengirimkannya.
Ketika saya mengirim tombol itu memberikan kesalahan seperti
Server SMTP membutuhkan sambungan aman atau klien tidak diautentikasi. Respons server adalah: 5.5.1 Diperlukan Otentikasi.
Kode dalam file Web.config
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="smtpServer" value="smtp.gmail.com" />
<add key="EnableSsl" value = "true"/>
<add key="smtpPort" value="587" />
<add key="smtpUser" value="[email protected]" />
<add key="smtpPass" value="mypassword" />
<add key="adminEmail" value="[email protected]" />
</appSettings>
<system.net>
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.gmail.com" password="mypassword" port="587" userName="[email protected]" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
apa yang harus saya lakukan untuk mengatasi kesalahan ini dan mengirim email ??
Jawaban:
Pertama, periksa masalah terkait keamanan gmail. Anda mungkin telah mengaktifkan autentikasi ganda di gmail. Periksa juga kotak masuk gmail Anda jika Anda mendapatkan peringatan keamanan. Dalam kasus seperti itu periksa jawaban lain dari @mjb seperti di bawah ini
Di bawah ini adalah hal yang sangat umum yang selalu saya periksa terlebih dahulu untuk masalah seperti itu
setel ke false.
Catatan @Joe King's jawaban - Anda harus mengatur klien.UseDefaultCredentials sebelum Anda mengatur klien. Kredensial
sumber
Saya memiliki masalah yang sama.
Saya telah menemukan solusi ini:
Google dapat memblokir upaya masuk dari beberapa aplikasi atau perangkat yang tidak menggunakan standar keamanan modern. Karena aplikasi dan perangkat ini lebih mudah dibobol, memblokirnya membantu menjaga akun Anda lebih aman.
Beberapa contoh aplikasi yang tidak mendukung standar keamanan terbaru meliputi:
Oleh karena itu, Anda harus mengaktifkan Masuk Kurang Aman (atau akses aplikasi yang kurang aman ) di akun google Anda.
Setelah masuk ke akun google, buka:
https://www.google.com/settings/security/lesssecureapps
atau
https://myaccount.google.com/lesssecureapps
Di C #, Anda dapat menggunakan kode berikut:
-------------------
Info yang dibagikan oleh Michael Freidgeim di area komentar di bawah ini:
Jawaban serupa dengan tangkapan layar https://stackoverflow.com/a/32457468/52277
sumber
Pastikan Anda mengatur
SmtpClient.Credentials
setelah meneleponSmtpClient.UseDefaultCredentials = false
.Urutan ini penting karena pengaturan
SmtpClient.UseDefaultCredentials = false
akan disetel ulangSmtpClient.Credentials
ke nol.sumber
Saya telah mencari dan mencoba berbagai hal selama berjam-jam .. Untuk meringkas, saya harus mempertimbangkan poin-poin berikut:
smtp.gmail.com
sebagai gantismtp.google.com
client.UseDefaultCredentials = false;
sebelum mengatur kredensialclient.EnableSsl = true;
Jika langkah-langkah ini tidak membantu, periksa jawaban ini .
Mungkin, Anda juga dapat menemukan sesuatu yang berguna di FAQ System.Net.Mail ini .
sumber
Coba login di akun gmail Anda. itu terkunci jika Anda mengirim email dengan menggunakan gmail SMTP. Saya tidak tahu batas email yang dapat Anda kirim sebelum terkunci tetapi jika Anda masuk satu kali maka itu berfungsi lagi dari kode. pastikan setting webconfig Anda bagus.
sumber
Cobalah cara ini, saya baru saja membuat beberapa perubahan kecil:
Juga tolong tunjukkan file app.config Anda, jika Anda memiliki pengaturan email di sana.
sumber
coba aktifkan izinkan akses aplikasi yang kurang aman.
Di sini, Anda dapat mengaktifkan aplikasi yang kurang aman setelah login dengan Gmail Anda.
https://myaccount.google.com/lesssecureapps
Terima kasih.
sumber
Saya mengalami masalah yang sama bahkan saya menyetel "UseDefaultCredentials" ke false. Kemudian saya menemukan bahwa akar masalahnya adalah saya mengaktifkan "Verifikasi 2 Langkah" di akun saya. Setelah saya mematikannya, masalahnya hilang.
sumber
Aktifkan aplikasi yang kurang aman dari tautan ini dan boom ...
sumber
Pastikan bahwa aplikasi Access kurang aman diizinkan.
sumber
Di bawah ini adalah kode saya, saya juga memiliki kesalahan yang sama tetapi masalahnya adalah saya salah memasukkan kata sandi. Kode di bawah ini akan berfungsi dengan sempurna .. coba saja
Anda dapat mereferensikannya di Mengirim email
sumber
Jika ini adalah akun Google baru, Anda harus mengirim email (yang pertama) melalui antarmuka pengguna biasa. Setelah itu Anda dapat menggunakan aplikasi / robot Anda untuk mengirim pesan.
sumber
Anda harus mempertimbangkan untuk menentukan data konfigurasi SMTP dalam file konfigurasi dan tidak menimpanya dalam kode - lihat data konfigurasi SMTP di http://www.systemnetmail.com/faq/4.1.aspx
sumber
Saya mengalami masalah yang sama beberapa kali. Setelah mengaktifkan opsi aplikasi yang kurang aman, masalah teratasi. Aktifkan aplikasi yang kurang aman dari sini: https://myaccount.google.com/lesssecureapps
semoga ini bisa membantu.
sumber
Jika Anda berada dalam lingkungan pengujian dan tidak ingin menyetel setelan keamanan, Anda harus mengizinkan aplikasi yang kurang aman lewat. tautan ini di Gmail.
https://myaccount.google.com/lesssecureapps
sumber
beberapa server smtp (yang aman) mengharuskan Anda untuk memberikan nama pengguna dan email, jika gmailnya maka kemungkinan besar masalah 'Masuk yang Kurang Aman' perlu Anda atasi, jika tidak Anda dapat mencoba:
perhatikan bahwa email dari dan nama pengguna berbeda tidak seperti beberapa implementasi yang merujuk keduanya sebagai sama.
memanggil metode ini dapat dilakukan seperti ini:
sumber
Setelah mengaktifkan opsi kurang aman dan mencoba solusi lain, jika Anda masih menghadapi masalah yang sama coba gunakan kelebihan beban ini:
dari pada:
sumber
Saya membuat langganan Pengembang Microsoft 365 (E5) pagi ini dan menggunakannya untuk mengirim email percobaan menggunakan pengaturan berikut
Itu tidak berfungsi pada awalnya, karena saya terus mendapatkan pesan kesalahan ini dengan pengecualian yang dilemparkan oleh kode ini. Kemudian, saya menghabiskan sekitar 4+ jam bermain dengan pengaturan pusat admin Microsoft 365 dan membaca artikel untuk mencari tahu masalahnya. Akhirnya saya mengubah kata sandi pusat admin Microsoft 365 saya dan itu bekerja dengan sangat baik. Jadi, ada baiknya untuk mencoba mengubah kata sandi saat Anda mendapatkan pesan ini, sebelum memikirkan solusi lanjutan apa pun.
Perhatikan bahwa kata sandi tidak valid karena saya masuk ke akun Microsoft 365 saya tanpa masalah apa pun. Namun, perubahan kata sandi menyelesaikan masalah.
sumber
Saya juga menghadapi masalah seperti 'Server SMTP memerlukan koneksi aman atau klien tidak diautentikasi. Respons server adalah: 5.5.0 Authentication Required 'kemudian membahas begitu banyak materi internet tetapi tidak membantu saya sepenuhnya. Bagaimana saya mengatasinya seperti
langkah1: smtp.gmail.com adalah server gmail jadi buka pengaturan gmail akun Anda-> klik lihat semua pengaturan-> Penerusan dan IMAP / POP-> centang pop dan imap diaktifkan, jika tidak aktifkan-> Simpan perubahan. langkah2-klik pada gambar profil gmail Anda-> klik Kelola akun google Anda-> buka tab keamanan-> periksa Akses ke aplikasi yang kurang aman (opsi ini akan tersedia jika Anda belum memilih verifikasi dua langkah) -> secara default google akan mengaturnya sebagai nonaktif, membuatnya memungkinkan untuk menggunakan kata sandi gmail Anda yang sebenarnya untuk mengirim email. catatan: -Mengaktifkan akses gmail untuk aplikasi yang kurang aman, mungkin berbahaya untuk Anda jadi saya tidak merekomendasikan ini
langkah3: -jika akun Anda mengaktifkan verifikasi dua langkah atau ingin menggunakan kata sandi selain Gmail Anda Kata sandi asli menggunakan kata sandi khusus aplikasi, maka coba ini: - klik pada gambar profil gmail Anda-> klik Kelola akun Google Anda-> buka keamanan tab-> cari KATA SANDI APLIKASI-> pilih nama aplikasi yang diberikan-> pilih nama perangkat apa pun-> klik buat-> salin kata sandi 16-digit dan tempelkan ke aplikasi Anda di mana Anda harus memasukkan kata sandi gmail sebagai pengganti kata sandi gmail Anda yang sebenarnya.
sumber