1. A computer-implemented method for delivering content from a communication device, the method comprising:
obtaining conditions associated with a communication network connected to the communication device;
determining whether conditions of the communication network, including available network bandwidth, support delivery of content
stored in a large file;
when the conditions indicate that the communication network is able to transmit the large file, transmitting the large file
over the communication network to a recipient specified by a user of the communication device; and
when the conditions indicate that the communication network is unable to transmit the large file:
postponing transmission of the large file over the communication network to the recipient specified by a user of the communication
device,
generating a small file that stores a version of the content,
generating a link that corresponds to the large file, which is accessible to the recipient via the link when the conditions
indicate that the communication network is able to transmit the large file; and
transmitting both the link and the small file together over the communication network to the recipient specified by the user
of the communication device; and
generating a notification when the conditions indicate that the communication network is able to transmit the large file.