La dimensione su disco è solo una parte del messaggio generato. Gli header MIME e la codifica base64 aggiungono overhead, quindi un file che rientra nel limite pubblicizzato dal provider può comunque rendere il messaggio troppo grande.
Cosa rende un allegato più grande in transito?
La codifica Base64 aggiunge circa un terzo a un file binario prima che vengano aggiunti le interruzioni di riga e gli header MIME. L'email trasporta quel file codificato come parte MIME, insieme al corpo e agli header.
Ad esempio, un file binario da 12 MB diventa circa 16 MB di base64 prima di interruzioni di riga, header e corpo. Considera questo come una stima, non come un limite del provider.
Quale limite devo usare?
Usa il limite più basso tra il tuo servizio di invio, il provider del destinatario e il percorso tra di essi. I provider pubblicano limiti diversi e possono modificarli. Inserisci un link al limite corrente del provider anziché fissare un numero universale nel codice.
Se un file è vicino al limite, inseriscilo dietro un link di download autenticato. Il messaggio resta piccolo. Puoi far scadere o revocare l'accesso indipendentemente dall'email.
| Limite | Cosa limita | Conseguenza di esempio |
|---|---|---|
| Limite per allegato | Un singolo file o campo allegato | Il API rifiuta quell'elemento |
| Limite per messaggio | Corpo, header e allegati codificati | Il mittente rifiuta il messaggio generato |
| Trasferimento via link cloud | Il servizio di download collegato | Il destinatario segue una policy di accesso separata |
La guida personale di Gmail indica un limite totale per gli allegati di 25 MB. Gli amministratori dello spazio di lavoro possono impostare limiti diversi per gli account aziendali e scolastici. Considera entrambi come valori specifici del provider.
Come dovrebbe gestire i file di grandi dimensioni un API?
Controlla la dimensione del messaggio codificato prima dell'invio. Rifiuta o sostituisci un allegato sovradimensionato con un link di download chiaro. Comunica all'utente quale file ha causato la decisione. Non riprovare a inviare un messaggio sovradimensionato invariato.
Mantieni accurati i nomi degli allegati e i content type. Il provider del destinatario può rifiutare un messaggio a causa della dimensione totale, di un tipo di file bloccato o di una policy applicata al link.
Come gestisce gli allegati Bird?
Imposta l'array attachments nella tua richiesta POST /v1/email/messages. Consulta la guida agli allegati per il budget corrente di Bird sul messaggio generato. Un invio HTTP sovradimensionato restituisce 413. Mantieni il contenuto grezzo degli allegati ben al di sotto del budget documentato, in modo che i corpi e il wrapping MIME rientrino.
In breve
- Il limite copre il messaggio codificato, il corpo, gli header e gli allegati.
- Base64 aggiunge circa un terzo alla dimensione di un file binario.
- Controlla ogni provider nel percorso di consegna.
- Un link di download evita i problemi legati alla dimensione degli allegati per i file di grandi dimensioni.