insert method
Directly inserts a message into only this user's mailbox similar to IMAP APPEND
, bypassing most scanning and classification.
Does not send a message.
request
- The metadata request object.
Request parameters:
userId
- The user's email address. The special value me
can be used to
indicate the authenticated user.
deleted
- Mark the email as permanently deleted (not TRASH) and only
visible in Google Vault to a Vault administrator. Only used for Google
Workspace accounts.
internalDateSource
- Source for Gmail's internal date of the message.
Possible string values are:
- "receivedTime" : Internal message date set to current time when received by Gmail.
- "dateHeader" : Internal message time based on 'Date' header in email, when valid.
$fields
- Selector specifying which fields to include in a partial
response.
uploadMedia
- The media to upload.
uploadOptions
- Options for the media upload. Streaming Media without
the length being known ahead of time is only supported via resumable
uploads.
Completes with a Message.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client
completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<Message> insert(
Message request,
core.String userId, {
core.bool? deleted,
core.String? internalDateSource,
core.String? $fields,
commons.UploadOptions uploadOptions = commons.UploadOptions.defaultOptions,
commons.Media? uploadMedia,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
if (deleted != null) 'deleted': ['${deleted}'],
if (internalDateSource != null)
'internalDateSource': [internalDateSource],
if ($fields != null) 'fields': [$fields],
};
core.String url_;
if (uploadMedia == null) {
url_ =
'gmail/v1/users/' + commons.escapeVariable('$userId') + '/messages';
} else if (uploadOptions is commons.ResumableUploadOptions) {
url_ = '/resumable/upload/gmail/v1/users/' +
commons.escapeVariable('$userId') +
'/messages';
} else {
url_ = '/upload/gmail/v1/users/' +
commons.escapeVariable('$userId') +
'/messages';
}
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
uploadMedia: uploadMedia,
uploadOptions: uploadOptions,
);
return Message.fromJson(response_ as core.Map<core.String, core.dynamic>);
}