Saya menggunakan kode berikut untuk mengirim email. Kode ini berfungsi dengan benar di Mesin lokal saya. Tetapi pada server Produksi saya mendapatkan pesan kesalahan
var fromAddress = new MailAddress("[email protected]");
var fromPassword = "xxxxxx";
var toAddress = new MailAddress("[email protected]");
string subject = "subject";
string body = "body";
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
smtp.Send(message);
Dan di A / c Gmail saya, saya telah menerima email berikut setelah saya menjalankan kode dari server produksi
Hai,
Seseorang baru-baru ini menggunakan kata sandi Anda untuk mencoba masuk ke Akun Google Anda [email protected]. Orang ini menggunakan aplikasi seperti email, klien atau perangkat seluler.
Kami mencegah upaya masuk jika pembajak mencoba mengakses akun Anda. Harap tinjau detail upaya masuk:
Jumat, 3 Januari 2014 13:56:08 pukul UTC Alamat IP: xxx.xx.xx.xxx (abcd.net.) Lokasi: Philadelphia PA, Philadelphia, PA, USA
Jika Anda tidak mengenali upaya masuk ini, orang lain mungkin mencoba mengakses akun Anda. Anda harus masuk ke akun Anda dan segera mengatur ulang kata sandi Anda.
Setel ulang kata sandi
Jika ini adalah Anda dan Anda mengalami kesulitan mengakses akun Anda, selesaikan langkah pemecahan masalah yang tercantum di http://support.google.com/mail?p=client_login
Hormat saya, Tim Akun Google
Jawaban:
Ini umumnya terjadi ketika Anda mencoba masuk dari zona waktu yang berbeda atau Komputer Alamat IP. Server produksi Anda dan id surat yang Anda gunakan keduanya berada di zona waktu yang berbeda. Pilih salah satu dari dua solusi ini:
1) Masuk ke server produksi melalui akses jarak jauh, dan masuk ke Gmail sekali dengan kredensial Anda. Mereka akan meminta konfirmasi, mengonfirmasi dan keluar.
Atau 2) masuk gmail ke komputer lokal Anda, Ikuti Tautan ini dan pilih tinjau aktivitas ini dan ambil tindakan yang sepatutnya.
sumber
Ketika Anda mencoba mengirim surat dari kode dan Anda menemukan kesalahan "Server SMTP membutuhkan koneksi yang aman atau klien tidak dikonfirmasi. Respons server adalah: 5.5.1 Diperlukan Otentikasi", daripada kesalahan yang mungkin terjadi karena kasus-kasus berikut.
kasus 1: ketika kata sandi salah
kasus 2: ketika Anda mencoba masuk dari beberapa Aplikasi
kasus 3: ketika Anda mencoba login dari domain selain dari zona waktu / domain / komputer Anda (Ini adalah kasus di sebagian besar skenario ketika mengirim email dari kode)
Ada solusi untuk masing-masing
solusi untuk kasus 1: Masukkan kata sandi yang benar.
solusi 1 untuk kasus 2 : buka pengaturan keamanan di tautan followig https://www.google.com/settings/security/lesssecureapps dan aktifkan aplikasi yang kurang aman. Sehingga Anda dapat masuk dari semua aplikasi.
solusi 2 untuk kasus 2 : (lihat https://stackoverflow.com/a/9572958/52277 ) aktifkan otentikasi dua faktor (alias verifikasi dua langkah), dan kemudian buat kata sandi khusus aplikasi. Gunakan kata sandi yang baru dibuat untuk mengotentikasi melalui SMTP.
solusi 1 untuk kasus 3: (Ini mungkin membantu) Anda perlu meninjau aktivitas. tetapi meninjau aktivitas tidak akan membantu karena standar keamanan terbaru tautannya tidak akan berguna. Jadi coba kasus di bawah ini.
solusi 2 untuk kasus 3 : Jika Anda telah meng-host kode Anda di suatu tempat di server produksi dan jika Anda memiliki akses ke server produksi, daripada mengambil koneksi remote desktop ke server produksi dan mencoba masuk sekali dari browser server produksi. Ini akan menambah pengecualian untuk masuk ke google dan Anda akan diizinkan masuk dari kode.
Tetapi bagaimana jika Anda tidak memiliki akses ke server produksi. coba solusinya 3
solusi 3 untuk kasus 3: Anda harus mengaktifkan login dari zona waktu / ip lain untuk akun google Anda.
untuk melakukan ini ikuti tautan https://g.co/allowaccess dan izinkan akses dengan mengklik tombol lanjutkan.
Dan itu saja. Ini dia Sekarang Anda dapat masuk dari komputer mana pun dan dengan cara apa pun ke akun Google Anda.
sumber
Ini masalah keamanan, Gmail secara default mencegah akses untuk akun email Anda dari aplikasi khusus. Anda dapat mengaturnya untuk menerima login dari aplikasi Anda.
Setelah Masuk ke email Anda, KLIK DI SINI
Ini akan membawa Anda ke halaman berikut
sumber
Setelah menghabiskan beberapa jam hari ini mencoba setiap solusi di sini, saya masih tidak dapat mengatasi kesalahan yang tepat ini. Saya telah menggunakan gmail berkali-kali dengan cara ini sehingga saya tahu itu adalah sesuatu yang bodoh, tetapi tidak ada yang saya perbaiki. Saya akhirnya menemukan solusi dalam kasus saya jadi saya pikir saya akan berbagi.
Pertama, sebagian besar jawaban di atas juga diperlukan, tetapi dalam kasus saya, itu adalah masalah sederhana pemesanan kode sambil membuat
SmtpClient
kelas.Dalam cuplikan kode pertama di bawah ini, perhatikan di mana
Credentials = creds
baris tersebut berada. Implementasi ini akan menghasilkan kesalahan yang dirujuk dalam pertanyaan ini bahkan jika Anda sudah mengatur semuanya dengan benar.Namun, jika Anda memindahkan panggilan setter Kredensial ke bawah, email akan dikirim tanpa kesalahan. Saya tidak membuat perubahan pada kode di sekitarnya ... yaitu ... nama pengguna / kata sandi, dll. Jelas, apakah
EnableSSL, UseDefaultCredentials, or the DeliveryMethod
tergantung padaCredentials
yang ditetapkan pertama ... Saya tidak menguji semua untuk mengetahui yang mana itu meskipun .Semoga ini membantu menyelamatkan orang lain beberapa sakit kepala di masa depan.
sumber
UseDefaultCredentials
setter ada kode ini:this.transport.Credentials = value ? (ICredentialsByHost) CredentialCache.DefaultNetworkCredentials : (ICredentialsByHost) null;
yang menimpacredentials
ditetapkan olehCredentials
setter. Bagi saya sepertinya iniSmtpClient
adalah bugAnda harus mengaktifkan "Izinkan aplikasi yang kurang aman" dari sini https://myaccount.google.com/lesssecureapps
sumber
Hai saya punya masalah yang sama,
apa yang telah saya lakukan untuk menyelesaikannya. adalah untuk mengaktifkan aplikasi yang kurang aman. setelah terhubung ke akun gmail saya. Saya memasukkan tautan ini: https://www.google.com/settings/security/lesssecureapps
Lalu saya nyalakan aplikasi yang aman dan, dan itu berhasil. telah dikatakan juga di atas
sumber
Saya memiliki kode yang sebelumnya berfungsi yang melempar kesalahan ini sekarang. Tidak ada masalah pada kata sandi. Tidak perlu mengonversi pesan ke base64 juga. Ternyata, saya perlu melakukan hal berikut:
Kode kerja
Mematikan otentikasi 2-faktor
Setel "Izinkan aplikasi yang kurang aman" ke AKTIF (halaman yang sama, perlu gulir ke bawah)
sumber
Cukup ikuti langkah di email google dan aktifkan aplikasi yang kurang aman.
sumber
Saya telah menghadapi masalah yang sama. Ini terjadi ketika Anda mengaktifkan Verifikasi 2 Langkah (MFA). Matikan Verifikasi 2 Langkah saja dan masalah Anda harus diselesaikan.
sumber
Di bawah ini adalah kode saya. Saya juga memiliki kesalahan yang sama tetapi masalahnya adalah saya memberikan kata sandi yang salah. Kode di bawah ini akan berfungsi dengan baik..mencobanya
Anda bisa merujuknya di blog saya
sumber
cukup nyalakan pengaturan atau gmail. lihat di bawah gambar yang diberikan:
sumber
Saya memiliki masalah yang sama untuk aplikasi yang digunakan untuk Microsoft Azure.
Pertama saya menyetujui semua perangkat yang tidak dikenal (beberapa alamat ip yang berasal dari Irlandia) pada halaman berikut (masuk sebagai pengguna gmail): https://security.google.com/settings/u/1/security/secureaccount
Saya menggunakan pengaturan berikut untuk klien:
Itu mulai bekerja hanya setelah saya mengatur properti berikut di smtp-client:
sumber
Yang berhasil bagi saya adalah mengaktifkan opsi untuk aplikasi yang kurang aman (saya menggunakan VB.NET)
Jadi masuk ke akun Anda dan kemudian pergi ke google.com/settings/security/lesssecureapps
sumber
Sebuah komentar dari Tomasz Madeyski adalah apa yang memperbaiki masalah saya ... ia mengatakan ada bug di SetDefaultCredential, katanya:
"Masalahnya adalah bahwa dalam setter UseDefaultCredentials ada kode ini: this.transport.Credentials = value? (ICredentialsByHost) CredentialCache.DefaultNetworkCredentials: (ICredentialsByHost) null; yang mengesampingkan kredensial yang ditetapkan oleh Credentials setter Bagi saya seperti"
jika Anda meletakkan
smtpClient.UseDefaultCredentials = false
setelah menetapkan kredensial ... baris ini disetel ke null kredensial itu ...sumber
NOVEMBER 2018, sudah mencoba semuanya di atas tanpa hasil.
Di bawah ini adalah solusi yang akhirnya berhasil. Sayangnya ini tidak menggunakan SSL, tetapi berhasil !!!
sumber
Saya mencoba semua saran yang ditemukan di sini, dari mengaktifkan aplikasi yang kurang aman, hingga mencoba port 587 ... tidak ada yang berhasil. Akhirnya saya baru saja berkomentar
UseDefaultCredentials = false
. Semuanya bekerja jika saya tidak menyentuh boolean itu.sumber
Saya benar-benar melihat banyak ide, satu-satunya solusi adalah dengan cara ini (bekerja dengan Penyedia email yang berbeda):
sumber
Saya adalah aplikasi Google untuk pelanggan bisnis dan saya menghabiskan beberapa jam terakhir hanya berurusan dengan ini, bahkan setelah memiliki semua pengaturan yang benar (smtp, port, enableSSL, dll). Inilah yang bekerja untuk saya dan situs web yang melemparkan kesalahan 5.5.1 ketika mencoba mengirim email:
Setelah melakukan ini, formulir email saya dari situs web kembali berfungsi. Semoga berhasil!
sumber
Anda mungkin perlu membuat / membuat kata sandi APP tertentu dari gmail. aplikasi atau skrip Anda akan menggunakan kata sandi baru ini alih-alih kata sandi biasa. Kata sandi reguler Anda masih berfungsi dengan baik untuk Anda.
Itulah yang dilakukan untuk saya. Saya masih menggunakan akun email yang sama tetapi harus membuat kata sandi khusus aplikasi baru.
https://support.google.com/accounts/answer/185833?hl=id
Pada dasarnya Anda dapat melakukannya di sini: https://security.google.com/settings/security/apppasswords
sumber
Jika Anda menggunakan gmail.
1-masuk ke akun Anda
2 - telusuri tautan ini
3 - Izinkan aplikasi yang kurang aman: AKTIF
Nikmati....
sumber
Anda harus melarang aplikasi yang kurang aman untuk mengakses akun google Anda .
melakukan:
https://myaccount.google.com/lesssecureapps
sumber
jangan letakkan break-point sebelum menunggu smtp.SendMailAsync (mail);
:)
ketika menunggu dengan break point memberikan kesalahan ini ketika saya menghapus break point itu berhasil
sumber
Saya menggunakan semua solusi yang disebutkan di atas, tetapi akhirnya berhasil hanya setelah saya mengaktifkan Akses IMAP dari pengaturan Gmail. Tautan ke Aktifkan Akses IMAP di pengaturan gmail
Tentu saja, poin dalam solusi lain juga diperlukan.
sumber
coba ganti tuan rumah, ini yang baru, saya dapat konfigurasi mozilla thunderbird ini
itu bekerja untuk saya
sumber