Class
CamelSession
Instance methods
camel_session_add_service
Instantiates a new CamelService
for session
. The uid
identifies the
service for future lookup. The protocol
indicates which CamelProvider
holds the GType
of the CamelService
subclass to instantiate. The type
explicitly designates the service as a CamelStore
or CamelTransport
.
since: 3.2
camel_session_addressbook_contains_sync
Look up in an address book book_uid
for an address email_address
and returns whether any such contact exists.
since: 3.44
camel_session_authenticate
Asynchronously authenticates service
, which may involve repeated calls
to camel_service_authenticate()
or camel_service_authenticate_sync().
A CamelSession
subclass is largely responsible for implementing this,
and should handle things like user prompts and secure password storage.
These issues are out-of-scope for Camel.
since: 3.4
camel_session_authenticate_finish
Finishes the operation started with camel_session_authenticate().
since: 3.4
camel_session_authenticate_sync
Authenticates service
, which may involve repeated calls to
camel_service_authenticate()
or camel_service_authenticate_sync().
A CamelSession
subclass is largely responsible for implementing this,
and should handle things like user prompts and secure password storage.
These issues are out-of-scope for Camel.
since: 3.4
camel_session_forget_password
This function is used by a CamelService
to tell the application
that the authentication information it provided via
camel_session_get_password()
was rejected by the service. If the
application was caching this information, it should stop,
and if the service asks for it again, it should ask the user.
camel_session_forward_to
Asynchronously forwards message
in folder
to the email address(s)
given by address
.
since: 3.6
camel_session_forward_to_finish
Finishes the operation started with camel_session_forward_to().
since: 3.6
camel_session_forward_to_sync
Forwards message
in folder
to the email address(es) given by address
.
since: 3.6
camel_session_get_filter_driver
The optional for_folder
can be used to determine which filters
to add and which not.
camel_session_get_junk_filter
Returns the CamelJunkFilter
instance used to classify messages as
junk or not junk during filtering.
since: 3.2
camel_session_get_oauth2_access_token_sync
Obtains the OAuth 2.0 access token for service
along with its expiry
in seconds from the current time (or 0 if unknown).
since: 3.28
camel_session_get_password
This function is used by a CamelService
to ask the application and
the user for a password or other authentication data.
camel_session_get_recipient_certificates_sync
Searches for S/MIME certificates or PGP keys for the given recipients
,
which are returned as base64 encoded strings in out_certificates
.
This is used when encrypting messages. The flags
influence what
the out_certificates
will contain. The order of items in out_certificates
should match the order of items in recipients
, with NULL
data for those
which could not be found.
since: 3.30
camel_session_get_user_cache_dir
Returns the base directory under which to store user-specific mail cache.
since: 3.4
camel_session_get_user_data_dir
Returns the base directory under which to store user-specific mail data.
since: 3.2
camel_session_idle_add
Adds a function to be called whenever there are no higher priority events
pending. If function
returns FALSE
it is automatically removed from the
list of event sources and will not be called again.
since: 3.6
camel_session_list_services
Returns a list of all CamelService
objects previously added using camel_session_add_service().
since: 3.2
camel_session_ref_main_context
Returns the GMainContext
on which event sources for session
are to
be attached.
since: 3.8
camel_session_ref_network_monitor
References a GNetworkMonitor
instance, which had been previously set
by camel_session_set_network_monitor(). If none is set, then the default
GNetworkMonitor
is returned, as provided by g_network_monitor_get_default().
The returned pointer is referenced for thread safety, unref it with
g_object_unref()
when no longer needed.
since: 3.22
camel_session_ref_service
Looks up a CamelService
by its unique identifier string. The service
must have been previously added using camel_session_add_service().
since: 3.6
camel_session_ref_service_by_url
Looks up a CamelService
by trying to match its CamelURL
against the
given url
and then checking that the object is of the desired type
.
The service must have been previously added using camel_session_add_service().
since: 3.6
camel_session_remove_service
Removes a CamelService
previously added by camel_session_add_service().
since: 3.2
camel_session_remove_services
Removes all CamelService
instances added by camel_session_add_service().
since: 3.2
camel_session_set_junk_filter
Installs the CamelJunkFilter
instance used to classify messages as
junk or not junk during filtering.
since: 3.2
camel_session_set_network_monitor
Sets a network monitor instance for the session
. This can be used
to override which GNetworkMonitor
should be used to check network
availability and whether a server is reachable.
since: 3.22
camel_session_submit_job
This function provides a simple mechanism for providers to initiate low-priority background jobs. Jobs can be submitted from any thread, but execution of the jobs is always as follows:
since: 3.2
camel_session_trust_prompt
Prompts the user whether to accept certificate
for service
. The
set of flags given in errors
indicate why the certificate
failed validation.
since: 3.8
camel_session_user_alert
Emits a CamelSession:user_alert
signal from an idle source on the main
loop. The idle source’s priority is #G_PRIORITY_LOW.
since: 3.12
Signals
Camel.Session::user-alert
This purpose of this signal is to propagate a server-issued alert
message from service
to a user interface. The type
hints at the
severity of the alert message.
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.
Class structure
struct CamelSessionClass {
GObjectClass parent_class;
CamelService* (* add_service) (
CamelSession* session,
const gchar* uid,
const gchar* protocol,
CamelProviderType type,
GError** error
);
void (* remove_service) (
CamelSession* session,
CamelService* service
);
gchar* (* get_password) (
CamelSession* session,
CamelService* service,
const gchar* prompt,
const gchar* item,
guint32 flags,
GError** error
);
gboolean (* forget_password) (
CamelSession* session,
CamelService* service,
const gchar* item,
GError** error
);
CamelCertTrust (* trust_prompt) (
CamelSession* session,
CamelService* service,
GTlsCertificate* certificate,
GTlsCertificateFlags errors
);
CamelFilterDriver* (* get_filter_driver) (
CamelSession* session,
const gchar* type,
CamelFolder* for_folder,
GError** error
);
gboolean (* lookup_addressbook) (
CamelSession* session,
const gchar* name
);
gboolean (* authenticate_sync) (
CamelSession* session,
CamelService* service,
const gchar* mechanism,
GCancellable* cancellable,
GError** error
);
gboolean (* forward_to_sync) (
CamelSession* session,
CamelFolder* folder,
CamelMimeMessage* message,
const gchar* address,
GCancellable* cancellable,
GError** error
);
gboolean (* get_oauth2_access_token_sync) (
CamelSession* session,
CamelService* service,
gchar** out_access_token,
gint* out_expires_in,
GCancellable* cancellable,
GError** error
);
gboolean (* get_recipient_certificates_sync) (
CamelSession* session,
guint32 flags,
const GPtrArray* recipients,
GSList** out_certificates,
GCancellable* cancellable,
GError** error
);
gboolean (* addressbook_contains_sync) (
CamelSession* session,
const gchar* book_uid,
const gchar* email_address,
GCancellable* cancellable,
GError** error
);
None reserved_methods;
void (* job_started) (
CamelSession* session,
GCancellable* cancellable
);
void (* job_finished) (
CamelSession* session,
GCancellable* cancellable,
const GError* error
);
void (* user_alert) (
CamelSession* session,
CamelService* service,
CamelSessionAlertType type,
const gchar* message
);
None reserved_signals;
}
Class members
parent_class: GObjectClass
- No description available.
add_service: CamelService* (* add_service) ( CamelSession* session, const gchar* uid, const gchar* protocol, CamelProviderType type, GError** error )
- No description available.
remove_service: void (* remove_service) ( CamelSession* session, CamelService* service )
- No description available.
get_password: gchar* (* get_password) ( CamelSession* session, CamelService* service, const gchar* prompt, const gchar* item, guint32 flags, GError** error )
- No description available.
forget_password: gboolean (* forget_password) ( CamelSession* session, CamelService* service, const gchar* item, GError** error )
- No description available.
trust_prompt: CamelCertTrust (* trust_prompt) ( CamelSession* session, CamelService* service, GTlsCertificate* certificate, GTlsCertificateFlags errors )
- No description available.
get_filter_driver: CamelFilterDriver* (* get_filter_driver) ( CamelSession* session, const gchar* type, CamelFolder* for_folder, GError** error )
- No description available.
lookup_addressbook: gboolean (* lookup_addressbook) ( CamelSession* session, const gchar* name )
- No description available.
authenticate_sync: gboolean (* authenticate_sync) ( CamelSession* session, CamelService* service, const gchar* mechanism, GCancellable* cancellable, GError** error )
- No description available.
forward_to_sync: gboolean (* forward_to_sync) ( CamelSession* session, CamelFolder* folder, CamelMimeMessage* message, const gchar* address, GCancellable* cancellable, GError** error )
- No description available.
get_oauth2_access_token_sync: gboolean (* get_oauth2_access_token_sync) ( CamelSession* session, CamelService* service, gchar** out_access_token, gint* out_expires_in, GCancellable* cancellable, GError** error )
- No description available.
get_recipient_certificates_sync: gboolean (* get_recipient_certificates_sync) ( CamelSession* session, guint32 flags, const GPtrArray* recipients, GSList** out_certificates, GCancellable* cancellable, GError** error )
- No description available.
addressbook_contains_sync: gboolean (* addressbook_contains_sync) ( CamelSession* session, const gchar* book_uid, const gchar* email_address, GCancellable* cancellable, GError** error )
- No description available.
reserved_methods: None
- No description available.
job_started: void (* job_started) ( CamelSession* session, GCancellable* cancellable )
- No description available.
job_finished: void (* job_finished) ( CamelSession* session, GCancellable* cancellable, const GError* error )
- No description available.
user_alert: void (* user_alert) ( CamelSession* session, CamelService* service, CamelSessionAlertType type, const gchar* message )
- No description available.
reserved_signals: None
- No description available.
Virtual methods
Camel.SessionClass.add_service
Instantiates a new CamelService
for session
. The uid
identifies the
service for future lookup. The protocol
indicates which CamelProvider
holds the GType
of the CamelService
subclass to instantiate. The type
explicitly designates the service as a CamelStore
or CamelTransport
.
since: 3.2
Camel.SessionClass.addressbook_contains_sync
Look up in an address book book_uid
for an address email_address
and returns whether any such contact exists.
since: 3.44
Camel.SessionClass.authenticate_sync
Authenticates service
, which may involve repeated calls to
camel_service_authenticate()
or camel_service_authenticate_sync().
A CamelSession
subclass is largely responsible for implementing this,
and should handle things like user prompts and secure password storage.
These issues are out-of-scope for Camel.
since: 3.4
Camel.SessionClass.forget_password
This function is used by a CamelService
to tell the application
that the authentication information it provided via
camel_session_get_password()
was rejected by the service. If the
application was caching this information, it should stop,
and if the service asks for it again, it should ask the user.
Camel.SessionClass.forward_to_sync
Forwards message
in folder
to the email address(es) given by address
.
since: 3.6
Camel.SessionClass.get_filter_driver
The optional for_folder
can be used to determine which filters
to add and which not.
Camel.SessionClass.get_oauth2_access_token_sync
Obtains the OAuth 2.0 access token for service
along with its expiry
in seconds from the current time (or 0 if unknown).
since: 3.28
Camel.SessionClass.get_password
This function is used by a CamelService
to ask the application and
the user for a password or other authentication data.
Camel.SessionClass.get_recipient_certificates_sync
Searches for S/MIME certificates or PGP keys for the given recipients
,
which are returned as base64 encoded strings in out_certificates
.
This is used when encrypting messages. The flags
influence what
the out_certificates
will contain. The order of items in out_certificates
should match the order of items in recipients
, with NULL
data for those
which could not be found.
since: 3.30
Camel.SessionClass.remove_service
Removes a CamelService
previously added by camel_session_add_service().
since: 3.2
Camel.SessionClass.trust_prompt
Prompts the user whether to accept certificate
for service
. The
set of flags given in errors
indicate why the certificate
failed validation.
since: 3.8
Camel.SessionClass.user_alert
Emits a CamelSession:user_alert
signal from an idle source on the main
loop. The idle source’s priority is #G_PRIORITY_LOW.
since: 3.12