ספריית nodemailer והאבטחה של גוגל
-
שלום רב!
כדי לשלוח אימייל מהשרת, אני משתמש בספריית nodemailer הייחודית עבור שפת node.js.
הבעיה, שגוגל מחמירה את האבטחה שלה בכל עת, והספרייה נחסמת מלשלוח הודעות דרך gmail.(התרת גישה לאפליקציות נמוכות, אינה עוזרת לי כי אם לימים ולפעמים לשעות ספורות בלבד, אחרי זמן מה נחסם לי שוב, למי שמתמצא שגיאה 535).
וזה השגיאה במסוף:
Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials k27sm2760396wms.21 - gsmtp at SMTPConnection._formatError (C:\Users\USER\Downloads\ahvtisael-main\node_modules\nodemailer\lib\smtp-connection\index.js:774:19) at SMTPConnection._actionAUTHComplete (C:\Users\USER\Downloads\ahvtisael-main\node_modules\nodemailer\lib\smtp-connection\index.js:1518:34) at SMTPConnection.<anonymous> (C:\Users\USER\Downloads\ahvtisael-main\node_modules\nodemailer\lib\smtp-connection\index.js:540:26) at SMTPConnection._processResponse (C:\Users\USER\Downloads\ahvtisael-main\node_modules\nodemailer\lib\smtp-connection\index.js:937:20) at SMTPConnection._onData (C:\Users\USER\Downloads\ahvtisael-main\node_modules\nodemailer\lib\smtp-connection\index.js:739:14) at TLSSocket.SMTPConnection._onSocketData (C:\Users\USER\Downloads\ahvtisael-main\node_modules\nodemailer\lib\smtp-connection\index.js:189:44) at TLSSocket.emit (node:events:329:20) at addChunk (node:internal/streams/readable:304:12) at readableAddChunk (node:internal/streams/readable:279:9) at TLSSocket.Readable.push (node:internal/streams/readable:218:10) at TLSWrap.onStreamRead (node:internal/stream_base_commons:192:23) { code: 'EAUTH', response: '535-5.7.8 Username and Password not accepted. Learn more at\n' + '535 5.7.8 https://support.google.com/mail/?p=BadCredentials k27sm2760396wms.21 - gsmtp', responseCode: 535, command: 'AUTH PLAIN'
כמובן שהשגיאה המופיעה במסוף, ששם המשתמש והסיסמא אינם תואמים, לא נכונה!
-
@katz אין לי ניסיון מספק בנושא שליחת מייל דרך שרתי GMAIL (כשניסיתי כמה פעמים זה כן עבד, וזה היה די מזמן, אולי אתה משתמש בחיבור לא מאובטח כלומר בSMTP לא מאובטח כדי לגשת לשרתי גוגל).
יש כאן גם אלמנט של מניעת שימוש מסחרי בשירות שלהם.
למה שלא תשקול לרכוש דומיין ולהקים שרת SMTP פרטי.
או לשלוח דרך שירותים צד ג'. -
@katz אתה צריך להשתמש ב-createTransport בצורה קצת אחרת (לא יודע כל כך איך מימשת את זה, אבל גם לי היה פעם את הבעיה הזאת, ושיניתי את זה לפי משהו שמצאתי ב-stackoverflow איפשהו).
nodemailer.createTransport({ host: 'smtp.gmail.com', port: 465, secure: true, auth: { user: emailaddress, pass: yourpassword }, tls: { rejectUnauthorized: false } });
ואתה צריך גם לאפשר גישה לחשבון בכתובת הבאה: https://accounts.google.com/DisplayUnlockCaptcha
וכמובן להתיר אפליקציות ברמת אבטחה נמוכה בחשבון גוגל שלך.
-
@katz אמר בספריית nodemailer והאבטחה של גוגל:
(התרת גישה לאפליקציות נמוכות, אינה עוזרת לי כי אם לימים ולפעמים לשעות ספורות בלבד, אחרי זמן מה נחסם לי שוב, למי שמתמצא שגיאה 535).
אם עושים אימות דו שלבי
ניתן לעשות סיסמ ה לאפליקציה ואין לה את הבעיות הנ"ל שיש בהתרת גישה לאפליקציות ברמה נמוכה