fix: resolve smtp authentication error and notification issues
All checks were successful
Build and Deploy / build-and-push (push) Successful in 2m12s
All checks were successful
Build and Deploy / build-and-push (push) Successful in 2m12s
- Stripped literal quotes from SMTP credentials in nodemailer config to prevent '535 Incorrect auth data' in Docker Swarm. - Reduced notification polling interval from 60s to 10s for real-time updates. - Fixed browser autoplay block for audio notifications by properly initializing the audio context.
This commit is contained in:
@@ -19,8 +19,8 @@ const transporter = nodemailer.createTransport({
|
|||||||
port: parseInt(process.env.SMTP_PORT) || 587,
|
port: parseInt(process.env.SMTP_PORT) || 587,
|
||||||
secure: false, // false para 587 (STARTTLS)
|
secure: false, // false para 587 (STARTTLS)
|
||||||
auth: {
|
auth: {
|
||||||
user: process.env.SMTP_USER || 'nao-responda@blyzer.com.br',
|
user: (process.env.SMTP_USER || 'nao-responda@blyzer.com.br').replace(/^"|"$/g, ''),
|
||||||
pass: process.env.SMTP_PASS || 'Compor@2017#', // Fallback to your known prod pass if env fails in swarm
|
pass: (process.env.SMTP_PASS || 'Compor@2017#').replace(/^"|"$/g, ''),
|
||||||
},
|
},
|
||||||
tls: {
|
tls: {
|
||||||
ciphers: 'SSLv3',
|
ciphers: 'SSLv3',
|
||||||
|
|||||||
@@ -47,11 +47,23 @@ export const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) =>
|
|||||||
const previousUnreadCountRef = React.useRef(0);
|
const previousUnreadCountRef = React.useRef(0);
|
||||||
const isInitialLoadRef = React.useRef(true);
|
const isInitialLoadRef = React.useRef(true);
|
||||||
|
|
||||||
|
// Pre-initialize audio to ensure it's loaded and ready
|
||||||
|
const audioRef = React.useRef<HTMLAudioElement | null>(null);
|
||||||
|
useEffect(() => {
|
||||||
|
// Determine base path correctly whether in prod or dev
|
||||||
|
const basePath = import.meta.env.PROD ? '' : 'http://localhost:3001';
|
||||||
|
audioRef.current = new Audio(`${basePath}/audio/notification.mp3`);
|
||||||
|
audioRef.current.volume = 0.5;
|
||||||
|
}, []);
|
||||||
|
|
||||||
const playNotificationSound = () => {
|
const playNotificationSound = () => {
|
||||||
if (currentUser?.sound_enabled !== false) {
|
if (currentUser?.sound_enabled !== false && audioRef.current) {
|
||||||
const audio = new Audio('/audio/notification.mp3');
|
// Reset time to 0 to allow rapid replays
|
||||||
audio.volume = 0.5;
|
audioRef.current.currentTime = 0;
|
||||||
audio.play().catch(e => console.log('Audio play failed:', e));
|
const playPromise = audioRef.current.play();
|
||||||
|
if (playPromise !== undefined) {
|
||||||
|
playPromise.catch(e => console.log('Audio play blocked by browser policy:', e));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user