Go 1.11 has reached end of support
and will be
deprecated
on January 31, 2026. After deprecation, you won't be able to deploy Go 1.11
applications, even if your organization previously used an organization policy to
re-enable deployments of legacy runtimes. Your existing Go
1.11 applications will continue to run and receive traffic after their
deprecation date. We
recommend that you
migrate to the latest supported version of Go.
Mail with Headers or Attachments
Stay organized with collections
Save and categorize content based on your preferences.
When you send mail using the Mail API,
there are some restrictions on the headers that you can use and the types of
files you can attach.
An outgoing email has headers that provide details about the message, such as
the sender, recipient, date, and subject. Each header has a name and a value.
You can also include the following headers in an outgoing email; for security
purposes, other headers are not allowed:
- In-Reply-To
- List-Id
- List-Unsubscribe
- On-Behalf-Of
- References
- Resent-Date
- Resent-From
- Resent-To
Mail with attachments
An outgoing email message can have file attachments. Each attachment has a
filename and file data. The file data can come from any source, such as an
application data file or the datastore.
Filename extensions that are prohibited
As a security measure to protect against viruses, email attachments cannot use
the following filename extensions, and ZIP files cannot contain files with the
following filename extensions:
- ade
- adp
- bat
- chm
- cmd
- com
- cpl
- exe
- hta
- ins
- isp
- jse
- lib
- mde
- msc
- msp
- mst
- pif
- scr
- sct
- shb
- sys
- vb
- vbe
- vbs
- vxd
- wsc
- wsf
- wsh
Attachments and Multipurpose Internet Mail Extensions (MIME) types
The MIME type of an attachment is determined from the file's extension. The MIME
type identifies the type of content that is being sent, and can determine how
that data is transferred.
The following is a list of MIME types and their corresponding filename
extensions. You are not limited to these extensions, but if you use an unknown
extension, App Engine will assign it the MIME type application/octet-stream
.
MIME type |
Filename extensions |
application/msword |
doc, docx |
application/pdf |
pdf |
application/rss+xml |
rss |
application/vnd.google-earth.kml+xml |
kml |
application/vnd.google-earth.kmz |
kmz |
application/vnd.ms-excel |
xls, xlsx |
application/vnd.ms-powerpoint |
pps, ppt, pptx |
application/vnd.oasis.opendocument.presentation |
odp |
application/vnd.oasis.opendocument.spreadsheet |
ods |
application/vnd.oasis.opendocument.text |
odt |
application/vnd.sun.xml.calc |
sxc |
application/vnd.sun.xml.writer |
sxw |
application/x-gzip |
gzip |
application/zip |
zip |
audio/basic |
au snd |
audio/flac |
flac |
audio/mid |
mid, rmi |
audio/mp4 |
m4a |
audio/mpeg |
mp3 |
audio/ogg |
oga, ogg |
audio/x-aiff |
aif, aifc, aiff |
audio/x-wav |
wav |
image/gif |
gif |
image/jpeg |
jpeg, jpg, jpe |
image/png |
png |
image/tiff |
tiff, tif |
image/vnd.wap.wbmp |
wbmp |
image/x-ms-bmp |
bmp |
text/calendar |
ics |
text/comma-separated-values |
csv |
text/css |
css |
text/html |
htm, html |
text/plain |
asc, c, diff, log, patch, pot, text, txt |
text/x-vcard |
vcf |
video/mp4 |
mp4 |
video/mpeg |
mpeg, mpg, mpe |
video/ogg |
ogv |
video/quicktime |
qt, mov |
video/x-msvideo |
avi |
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-09-04 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThe Mail API for first-generation runtimes has specific restrictions on allowable headers and attachment types when sending emails, and it can be used while upgrading to corresponding second-generation runtimes.\u003c/p\u003e\n"],["\u003cp\u003eOnly a predefined list of email headers, including In-Reply-To, List-Id, and Resent-From, are allowed for use in outgoing emails for security reasons.\u003c/p\u003e\n"],["\u003cp\u003eFile attachments are permitted in outgoing emails, but certain file extensions, such as .exe, .bat, and .vbs, are strictly prohibited to protect against viruses, and this extends to files contained within ZIP archives.\u003c/p\u003e\n"],["\u003cp\u003eThe MIME type of a file attachment is determined by its file extension, and while you can use extensions not in the defined list, those will default to the \u003ccode\u003eapplication/octet-stream\u003c/code\u003e MIME type.\u003c/p\u003e\n"],["\u003cp\u003eA table is provided that lists the compatible Mime types and the file extensions that correspond to each of them, including image, video, audio, text, and other general application types.\u003c/p\u003e\n"]]],[],null,["# Mail with Headers or Attachments\n\nWhen you send mail using the [Mail API](/appengine/docs/legacy/standard/go111/mail),\nthere are some restrictions on the headers that you can use and the types of\nfiles you can attach.\n| This API is supported for first-generation runtimes and can be used when [upgrading to corresponding second-generation runtimes](/appengine/docs/standard/\n| go\n| /services/access). If you are updating to the App Engine Go 1.12+ runtime, refer to the [migration guide](/appengine/migration-center/standard/migrate-to-second-gen/go-differences) to learn about your migration options for legacy bundled services.\n\nOptional headers you can use\n----------------------------\n\nAn outgoing email has headers that provide details about the message, such as\nthe sender, recipient, date, and subject. Each header has a name and a value.\nYou can also include the following headers in an outgoing email; for security\npurposes, other headers are not allowed:\n\n- In-Reply-To\n- List-Id\n- List-Unsubscribe\n- On-Behalf-Of\n- References\n- Resent-Date\n- Resent-From\n- Resent-To\n\nMail with attachments\n---------------------\n\nAn outgoing email message can have file attachments. Each attachment has a\nfilename and file data. The file data can come from any source, such as an\napplication data file or the datastore.\n\n### Filename extensions that are prohibited\n\nAs a security measure to protect against viruses, email attachments cannot use\nthe following filename extensions, and ZIP files cannot contain files with the\nfollowing filename extensions:\n\n- ade\n- adp\n- bat\n- chm\n- cmd\n- com\n- cpl\n- exe\n- hta\n- ins\n- isp\n- jse\n- lib\n- mde\n- msc\n- msp\n- mst\n- pif\n- scr\n- sct\n- shb\n- sys\n- vb\n- vbe\n- vbs\n- vxd\n- wsc\n- wsf\n- wsh\n\n### Attachments and Multipurpose Internet Mail Extensions (MIME) types\n\nThe MIME type of an attachment is determined from the file's extension. The MIME\ntype identifies the type of content that is being sent, and can determine how\nthat data is transferred.\n\nThe following is a list of MIME types and their corresponding filename\nextensions. You are not limited to these extensions, but if you use an unknown\nextension, App Engine will assign it the MIME type `application/octet-stream`."]]