## CamelTransport CamelTransport |

## Synopsis

    struct              CamelTransport;
    enum                CamelTransportLock;
    void                camel_transport_lock                (CamelTransport *transport,
                                                             CamelTransportLock lock);
    void                camel_transport_unlock              (CamelTransport *transport,
                                                             CamelTransportLock lock);
    gboolean            camel_transport_send_to_sync        (CamelTransport *transport,
                                                             CamelMimeMessage *message,
                                                             CamelAddress *from,
                                                             CamelAddress *recipients,
                                                             GCancellable *cancellable,
                                                             GError **error);
    void                camel_transport_send_to             (CamelTransport *transport,
                                                             CamelMimeMessage *message,
                                                             CamelAddress *from,
                                                             CamelAddress *recipients,
                                                             gint io_priority,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            camel_transport_send_to_finish      (CamelTransport *transport,
                                                             GAsyncResult *result,
                                                             GError **error);

## Object Hierarchy

      GObject
       +----CamelObject
             +----CamelService
                   +----CamelTransport

## Implemented Interfaces

CamelTransport implements GInitable.

## Description

## Details

### struct CamelTransport

    struct CamelTransport;

### enum CamelTransportLock

    typedef enum {
    	CAMEL_TRANSPORT_SEND_LOCK
    } CamelTransportLock;

`CAMEL_TRANSPORT_SEND_LOCK` |

Since 2.32

### camel_transport_lock ()

    void                camel_transport_lock                (CamelTransport *transport,
                                                             CamelTransportLock lock);

Locks `transport`'s `lock`. Unlock it with `camel_transport_unlock()`.

`transport` : | a CamelTransport
`lock` : | lock type to lock

Since 2.32

### camel_transport_unlock ()

    void                camel_transport_unlock              (CamelTransport *transport,
                                                             CamelTransportLock lock);

Unlocks `transport`'s `lock`, previously locked with `camel_transport_lock()`.

`transport` : | a CamelTransport
`lock` : | lock type to unlock

Since 2.32

### camel_transport_send_to_sync ()

    gboolean            camel_transport_send_to_sync        (CamelTransport *transport,
                                                             CamelMimeMessage *message,
                                                             CamelAddress *from,
                                                             CamelAddress *recipients,
                                                             GCancellable *cancellable,
                                                             GError **error);

Sends the message to the given recipients, regardless of the contents of `message`. If the message contains a "Bcc" header, the transport is responsible for stripping it.

`transport` : | a CamelTransport
`message` : | a CamelMimeMessage to send
`from` : | a CamelAddress to send from
`recipients` : | a CamelAddress containing all recipients
`cancellable` : | optional GCancellable object, or `NULL`
`error` : | return location for a GError, or `NULL`
Returns : | `TRUE` on success or `FALSE` on error

Since 3.0

### camel_transport_send_to ()

    void                camel_transport_send_to             (CamelTransport *transport,
                                                             CamelMimeMessage *message,
                                                             CamelAddress *from,
                                                             CamelAddress *recipients,
                                                             gint io_priority,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Sends the message asynchronously to the given recipients, regardless of the contents of `message`. If the message contains a "Bcc" header, the transport is responsible for stripping it.

When the operation is finished, `callback` will be called. You can then call `camel_transport_send_to_finish()` to get the result of the operation.

`transport` : | a CamelTransport
`message` : | a CamelMimeMessage to send
`from` : | a CamelAddress to send from
`recipients` : | a CamelAddress containing all recipients
`io_priority` : | the I/O priority of the request
`cancellable` : | optional GCancellable object, or `NULL`
`callback` : | a GAsyncReadyCallback to call when the request is satisfied
`user_data` : | data to pass to the callback function

Since 3.0

### camel_transport_send_to_finish ()

    gboolean            camel_transport_send_to_finish      (CamelTransport *transport,
                                                             GAsyncResult *result,
                                                             GError **error);

Finishes the operation started with `camel_transport_send_to()`.

`transport` : | a CamelTransport
`result` : | a GAsyncResult
`error` : | return locaton for a GError, or `NULL`
Returns : | `TRUE` on success, `FALSE` on error

Since 3.0