| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A mailbox or a mailer can be described in a URL, the string will contain the
necessary information to initialize mailbox_t, or mailer_t
properly.
pop://[<user>[;AUTH=<auth>]@]<host>[:<port>] or pop://[<user>[:<passwd>]@]<host>[:<port>] |
If :port is omitted the default value is 110. Different forms of authentication can be specified with ;AUTH=type. The special string ;AUTH=* indicates that the client will use a default scheme base on the capability of the server.
pop://obelix@gaulois.org pop://asterix;AUTH=*@france.com pop://falbala;AUTH=+APOP@france.com pop://obelix;AUTH=+APOP@village.gaulois.org:2000 pop://obelix:menhir@village.gaulois.org:2000 |
For more complete information see RFC 2368.
imap://[<user>[;AUTH=<type>]]@<host>[:port][/<mailbox>] or imap://[<user>[:<passwd>]]@<host>[:port][/<mailbox>] |
If :port is omitted the default value is 143. Different forms of authentication can be specified with ;AUTH=type. The special string ;AUTH=* indicates that the client will use a default scheme base on the capability of the server.
imap://obelix@imap.gaulois.org imap://asterix;AUTH=*@imap.france.com imap://asterix:potion@imap.france.com |
For more complete information see RFC 2192.
Local folder should be handle by this URL. It is preferable to let the mailbox recognize the type of mailbox and take the appropriate action.
file://path file://var/mail/user file://home/obelix/Mail |
For MMDF, MH local mailboxes URLs are provided, but it is preferable to use file://path and let the library figure out which one.
mmdf://path mh://path |
After setting a mailer, mailto: is used to tell the mailer where and to whom the message is for.
mailto://hostname |
Mailto can be used to generate short messages, for example to subscribe to mailing lists.
mailto://bug-mailutils@gnu.org?body=subscribe mailto://bug-mailutils@gnu.org?Subject=hello&body=subscribe |
For more complete information see RFC 2368.
Helper functions are provided to retrieve and set the URL fields.
The syntax, condensed from RFC 1738, and extended with the ;auth= of RFC 2384 (for POP) and RFC 2192 (for IMAP) is:
url =
scheme ":" [ "//"
[ user [ ( ":" password ) | ( ";auth=" auth ) ] "@" ]
host [ ":" port ]
[ ( "/" urlpath ) | ( "?" query ) ] ]
|
This is a generalized URL syntax, and may not be exactly appropriate for any particular scheme.
strdup().
#include <stdio.h>
#include <string.h>
#include <mailutils/errno.h>
#include <mailutils/url.h>
int
main ()
{
char str[1024];
char buffer[1024];
long port = 0;
int len = sizeof (buffer);
url_t u = NULL;
while (fgets (str, sizeof (str), stdin) != NULL)
{
int rc;
str[strlen (str) - 1] = '\0'; /* chop newline */
if (strspn (str, " \t") == strlen (str))
continue; /* skip empty lines */
if ((rc = url_create (&u, str)) != 0)
{
fprintf (stderr, "url_create %s ERROR: [%d] %s",
str, rc, mu_strerror (rc));
exit (1);
}
if ((rc = url_parse (u)) != 0)
{
printf ("%s => FAILED: [%d] %s\n",
str, rc, mu_strerror (rc));
continue;
}
printf ("%s => SUCCESS\n", str);
url_get_scheme (u, buffer, len, NULL);
printf ("\tscheme <%s>\n", buffer);
url_get_user (u, buffer, len, NULL);
printf ("\tuser <%s>\n", buffer);
url_get_passwd (u, buffer, len, NULL);
printf ("\tpasswd <%s>\n", buffer);
url_get_auth (u, buffer, len, NULL);
printf ("\tauth <%s>\n", buffer);
url_get_host (u, buffer, len, NULL);
printf ("\thost <%s>\n", buffer);
url_get_port (u, &port);
printf ("\tport %ld\n", port);
url_get_path (u, buffer, len, NULL);
printf ("\tpath <%s>\n", buffer);
url_get_query (u, buffer, len, NULL);
printf ("\tquery <%s>\n", buffer);
url_destroy (&u);
}
return 0;
}
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |