Untuk beberapa alasan, jawaban yang diterima atau yang lain tidak berfungsi untuk saya untuk " Mengirim email dalam .NET melalui Gmail ". Mengapa mereka tidak bekerja?
UPDATE: Saya telah mencoba semua jawaban (diterima dan sebaliknya) dalam pertanyaan lain, tetapi tidak ada yang bekerja.
Saya hanya ingin tahu apakah itu bekerja untuk orang lain, kalau tidak Google mungkin telah mengubah sesuatu (yang telah terjadi sebelumnya).
Ketika saya mencoba potongan kode yang digunakan SmtpDeliveryMethod.Network
, saya dengan cepat menerima SmtpException on Send (message). Pesannya adalah
Server SMTP memerlukan koneksi yang aman atau klien tidak diautentikasi.
Respons server adalah:
5.5.1 Diperlukan Otentikasi. Pelajari lebih lanjut di "<- serius, itu berakhir di sana.
MEMPERBARUI:
Ini adalah pertanyaan yang saya tanyakan sejak lama, dan jawaban yang diterima adalah kode yang telah saya gunakan berkali-kali pada proyek yang berbeda.
Saya telah mengambil beberapa ide dalam posting ini dan proyek EmailSender lainnya untuk membuat proyek EmailSender di Codeplex . Ini dirancang untuk testabilitas dan mendukung layanan SMTP favorit saya seperti GoDaddy dan Gmail.
Jawaban:
CVertex, pastikan untuk meninjau kode Anda, dan, jika itu tidak mengungkapkan apa pun, poskan. Saya baru saja mengaktifkan ini pada situs uji ASP.NET yang saya kerjakan, dan berfungsi.
Sebenarnya, pada beberapa titik saya memiliki masalah pada kode saya. Saya tidak melihatnya sampai saya memiliki versi yang lebih sederhana pada program konsol dan melihatnya bekerja (tidak ada perubahan di sisi Gmail karena Anda khawatir tentang). Kode di bawah ini berfungsi seperti sampel yang Anda maksud:
Saya juga membuatnya bekerja menggunakan kombinasi web.config, http://msdn.microsoft.com/en-us/library/w355a94k.aspx dan kode (karena tidak ada yang cocok
EnableSsl
dalam file konfigurasi :().sumber
BERIKUT INI AKAN HAMPIR MENJADI JAWABAN UNTUK PERTANYAAN ANDA JIKA SEMUA ORANG LAIN TELAH GAGAL :
Saya mendapatkan kesalahan yang sama persis, ternyata algoritma penguat kata sandi baru Google telah berubah menganggap kata sandi saya saat ini terlalu lemah, dan tidak memberi tahu saya apa-apa tentang hal itu (bahkan bukan pesan atau peringatan) ... Bagaimana saya menemukan ini ? Yah, saya memilih untuk mengubah kata sandi saya untuk melihat apakah itu akan membantu (mencoba yang lain tidak berhasil) dan ketika saya mengubah kata sandi saya, itu berhasil!
Kemudian, untuk percobaan, saya mencoba mengubah kata sandi saya kembali ke kata sandi saya sebelumnya untuk melihat apa yang akan terjadi, dan Gmail sebenarnya tidak mengizinkan saya untuk melakukan ini, dengan alasan "maaf kami tidak dapat membiarkan Anda menyimpan perubahan ini seperti yang Anda pilih kata sandi terlalu lemah "dan tidak akan membiarkan saya kembali ke kata sandi lama saya. Dari sini saya tahu bahwa itu salah karena a) Anda perlu mengganti kata sandi sekali setiap x jumlah bulan atau b). seperti yang saya katakan sebelumnya, algoritma kekuatan kata sandi mereka berubah dan oleh karena itu kata sandi yang lemah yang saya miliki tidak diterima, walaupun mereka tidak mengatakan apa-apa tentang hal ini ketika mencoba masuk ke MANA SAJA! Ini (nomor 2) adalah skenario yang paling mungkin, karena kata sandi saya yang lemah berusia sekitar 4 bulan, dan itu memungkinkan saya menggunakannya di Gmail.
Sangat buruk bahwa mereka tidak mengatakan apa-apa tentang ini, tetapi itu masuk akal. Karena sebagian besar email yang dibajak masuk menggunakan perangkat lunak di luar gmail, dan saya rasa Anda diharuskan memiliki kata sandi yang lebih kuat jika Anda ingin menggunakan Gmail di luar lingkungan Gmail.
Saya harap ini membantu!
sumber
Selain langkah pemecahan masalah lainnya di atas, saya juga ingin menambahkan bahwa jika Anda telah mengaktifkan otentikasi dua faktor (juga dikenal sebagai verifikasi dua langkah ) pada akun GMail Anda, Anda harus membuat kata sandi khusus aplikasi dan menggunakannya kata sandi yang dihasilkan untuk mengautentikasi melalui SMTP .
Untuk membuatnya, kunjungi: https://www.google.com/settings/ dan pilih Otorisasi aplikasi & situs untuk menghasilkan kata sandi.
sumber
Tautan ke Pengaturan Gmail
sumber
Saya juga mengalami masalah dalam mengirim email dari akun gmail saya, yang disebabkan oleh beberapa situasi di atas. Berikut ringkasan cara saya membuatnya bekerja, dan menjaganya tetap fleksibel pada saat yang sama:
Dan sekarang setiap kali Anda ingin mengirim email yang perlu Anda lakukan hanyalah menelepon
SSLMail.SendMail
:misalnya di Halaman dengan kontrol PasswordRecovery:
Atau di mana saja dalam kode Anda, Anda dapat menelepon:
Saya harap ini membantu siapa saja yang mengalami posting ini! (Saya menggunakan VB.NET tapi saya pikir itu sepele untuk mengubahnya menjadi bahasa .NET.)
sumber
Jika Anda mendapatkan kesalahan seperti "Server SMTP memerlukan koneksi yang aman atau klien tidak diautentikasi. Respons server adalah: 5.5.1 Diperlukan Otentikasi. Pelajari lebih lanjut di" seperti yang saya dapatkan sebelum ini, pastikan baris
SMTPClientObj.UseDefaultCredentials = False
disertakan dan baris ini harus sebelumSMTPClientObj.Credentials
.Saya memang mencoba untuk beralih 2 baris ini dengan cara yang berlawanan dan kesalahan 5.5.1 Diperlukan Otentikasi dikembalikan.
sumber
Oh ... Luar biasa ... Pertama, saya tidak bisa mengirim email karena alasan apa pun. Tetapi setelah saya mengubah urutan kedua baris ini seperti di bawah ini, ia bekerja dengan sempurna.
Semoga bantuan ini !!! :)
sumber
Masalahnya bukan pada kemampuan teknis untuk mengirim melalui gmail. Itu bekerja untuk sebagian besar situasi. Jika Anda tidak bisa mendapatkan mesin untuk dikirim, biasanya karena mesin tidak dikonfirmasi dengan manusia di kontrol setidaknya sekali.
Masalah yang dihadapi sebagian besar pengguna adalah Google memutuskan untuk mengubah batas keluar setiap saat. Anda harus selalu menambahkan kode defensif ke solusi Anda. Jika Anda mulai melihat kesalahan, turunkan kecepatan kirim Anda dan berhenti mengirim untuk sementara waktu. Jika Anda terus mencoba untuk mengirim Google, kadang-kadang akan menambah waktu tambahan untuk periode penundaan Anda sebelum Anda dapat mengirim lagi.
Apa yang saya lakukan dalam sistem saya saat ini adalah mengirim dengan penundaan 1,5 detik antara setiap pesan. Lalu jika saya mendapatkan kesalahan, berhenti selama 5 menit dan kemudian mulai lagi. Ini biasanya bekerja dan akan memungkinkan Anda untuk mengirim hingga batas akun (terakhir saya memeriksa 2.000 untuk login pelanggan utama per hari).
sumber
Langkah-langkah sederhana untuk memperbaikinya:
1) Masuk ke Gmail Anda
2) Navigasikan ke halaman ini https://www.google.com/settings/security/lesssecureapps & set ke "Turn On"
sumber
Saya memiliki masalah yang sama, tetapi ternyata perlindungan virus saya memblokir email "spam" keluar. Mematikan ini memungkinkan saya untuk menggunakan port 587 untuk mengirim email SMTP melalui GMail
sumber
Jika tidak ada hal lain yang berhasil di sini untuk Anda, Anda mungkin perlu mengizinkan akses ke akun gmail Anda dari aplikasi pihak ketiga. Ini masalah saya. Untuk mengizinkan akses lakukan hal berikut:
Ini bekerja untuk saya, berharap ini bekerja untuk orang lain!
sumber
Saya tidak yakin versi NET mana yang diperlukan untuk ini karena eglasius menyebutkan tidak ada
enableSsl
pengaturan yang cocok (Saya menggunakan. NET 4.0, tapi saya curiga itu bekerja di. NET 2.0 atau lebih baru), tetapi konfigurasi ini justed bekerja untuk saya (dan tidak mengharuskan Anda menggunakan konfigurasi program apa pun):Anda mungkin harus mengaktifkan POP atau IMAP di akun Gmail Anda terlebih dahulu: https://mail.google.com/mail/?shva=1#settings/fwdandpop
Saya sarankan mencobanya dengan klien surat biasa dulu ...
sumber
@Andres Pompiglio: Ya itu benar Anda harus mengubah kata sandi Anda setidaknya sekali .. kode ini berfungsi dengan baik:
DAN Anda dapat membuat panggilan ke fungsi dengan menggunakan:
sumber
Saya menggunakan koneksi VPN perusahaan. Itulah alasan mengapa saya tidak bisa mengirim email dari aplikasi saya. Ini berfungsi jika saya memutuskan sambungan dari VPN.
sumber
Saya juga menemukan bahwa akun yang saya gunakan untuk masuk telah dinonaktifkan oleh google karena beberapa alasan. Setelah saya mengatur ulang kata sandi (sama seperti dulu), maka saya bisa mengirim email dengan baik. Saya juga mendapatkan pesan 5.5.1.
sumber
Saya juga telah mencoba banyak solusi tetapi membuat beberapa perubahan itu akan berhasil
dengan parameter smtpclient di atas berfungsi di gmail
sumber
Saya mendapatkan kesalahan yang sama dan tidak ada solusi di atas yang membantu.
Masalah saya adalah saya menjalankan kode dari server jauh, yang tidak pernah digunakan untuk masuk ke akun gmail.
Saya membuka browser di server jarak jauh dan masuk ke gmail dari sana. Ia menanyakan pertanyaan keamanan untuk memverifikasi itu saya karena ini adalah lokasi baru. Setelah melakukan pemeriksaan keamanan, saya dapat mengautentikasi melalui kode.
sumber
Aktifkan aplikasi yang kurang aman untuk akun Anda: https://www.google.com/settings/security/lesssecureapps
sumber
Saya mengalami kesalahan yang sama ( "Server SMTP memerlukan koneksi aman atau klien tidak diautentikasi. Respons server adalah: 5.5.1 Diperlukan Otentikasi. Pelajari selengkapnya di" ) dan mengetahui bahwa saya menggunakan kata sandi yang salah. Saya memperbaiki kredensial login, dan itu dikirim dengan benar.
Saya tahu ini terlambat, tapi mungkin ini akan membantu orang lain.
sumber
Hal lain yang saya temukan adalah Anda harus mengubah kata sandi Anda setidaknya sekali. Dan coba gunakan kata sandi tingkat keamanan (jangan gunakan pengguna yang sama dengan kata sandi, 123456, dll.)
sumber
Namun solusi lain yang mungkin untuk Anda. Saya mengalami masalah serupa yang menghubungkan ke gmail melalui IMAP. Setelah mencoba semua solusi yang saya temui yang akan Anda baca di sini dan di tempat lain di SO (mis. Aktifkan IMAP, aktifkan akses yang kurang aman ke email Anda, menggunakan https://accounts.google.com/b/0/displayunlockcaptcha dan seterusnya), saya benar-benar membuat akun gmail baru sekali lagi.
Dalam pengujian asli saya, akun gmail pertama yang saya buat, saya telah terhubung ke akun gmail utama saya. Ini mengakibatkan perilaku yang tidak menentu di mana akun yang salah sedang direferensikan oleh google. Misalnya, menjalankan https://accounts.google.com/b/0/displayunlockcaptcha membuka akun utama saya alih-alih yang saya buat untuk tujuan itu.
Jadi ketika saya membuat akun baru dan tidak menghubungkannya ke akun utama saya, setelah mengikuti semua langkah yang tepat seperti di atas, saya menemukan bahwa itu berfungsi dengan baik!
Saya belum mengkonfirmasi ini (mis. Direproduksi), tetapi ternyata itu berhasil untuk saya ... semoga membantu.
sumber
Set
sebelum
sumber
Ada satu atau lebih alasan untuk kesalahan ini.
Masuk dengan Gmail Anda (atau yang lain jika) di sistem lokal Anda.
Juga periksa untuk Aplikasi Kurang Aman dan Setel ke "Aktifkan" di sini adalah Tautan untuk GMAIL. https://www.google.com/settings/security/lesssecureapps
periksa EnableSsl di kode Email Anda, dan setel juga menjadi true.
Periksa juga port yang Anda gunakan saat ini. 25 adalah Global, tetapi Anda dapat memeriksanya untuk orang lain juga seperti 587. periksa di sini. Apakah semua komunikasi SMTP terjadi di atas 25?
JIKA ANDA BERADA DI REMOTE : Periksa jawaban Vlad Tamas di atas.
sumber
Anda juga dapat terhubung melalui port 465, tetapi karena beberapa keterbatasan namespace System.Net.Mail Anda mungkin harus mengubah kode Anda. Ini karena namespace tidak menawarkan kemampuan untuk membuat koneksi SSL implisit. Ini dibahas di http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx , dan saya telah memberikan contoh bagaimana menggunakan CDO (Objek Data Kolaboratif) dalam diskusi lain ( GMail SMTP melalui C #. Kesalahan bersih pada semua port ).
sumber
Saya memiliki masalah ini diselesaikan. Aparently pesan itu digunakan dalam beberapa tipe kesalahan. Masalah saya adalah bahwa saya telah mencapai maksimum 500 surat terkirim.
masuk ke akun dan coba kirim surat secara manual. Jika batas telah tercapai, itu akan memberi tahu Anda
sumber
Jika Anda memiliki Verifikasi 2 Langkah di akun Gmail Anda, Anda perlu membuat kata sandi Aplikasi. https://support.google.com/accounts/answer/185833?p=app_passwords_sa&hl=en&visit_id=636903322072234863-1319515789&rd=1 Pilih Cara membuat opsi kata sandi aplikasi dan ikuti langkah-langkah yang disediakan. Salin dan tempel kata sandi aplikasi yang dihasilkan di suatu tempat karena Anda tidak akan dapat memulihkannya setelah Anda mengklik SELESAI.
sumber
sumber
Ubah kata sandi gmail Anda dan coba lagi, itu akan berfungsi setelah itu.
Tidak tahu mengapa, tetapi setiap kali Anda mengubah hosting, Anda harus mengubah kata sandi.
sumber