Mail-Cclient
view release on metacpan or search on metacpan
mailstream_sequence(stream)
Mail::Cclient stream
unsigned int
mailstream_rdonly(stream)
Mail::Cclient stream
unsigned int
mailstream_anonymous(stream)
Mail::Cclient stream
unsigned int
mailstream_halfopen(stream)
Mail::Cclient stream
unsigned int
mailstream_perm_seen(stream)
Mail::Cclient stream
unsigned int
mailstream_perm_deleted(stream)
Mail::Cclient stream
unsigned int
mailstream_perm_flagged(stream)
Mail::Cclient stream
unsigned int
mailstream_perm_answered(stream)
Mail::Cclient stream
unsigned int
mailstream_perm_draft(stream)
Mail::Cclient stream
unsigned int
mailstream_kwd_create(stream)
Mail::Cclient stream
unsigned long
mailstream_nmsgs(stream)
Mail::Cclient stream
unsigned long
mailstream_recent(stream)
Mail::Cclient stream
unsigned long
mailstream_uid_validity(stream)
Mail::Cclient stream
unsigned long
mailstream_uid_last(stream)
Mail::Cclient stream
void
mailstream_perm_user_flags(stream)
Mail::Cclient stream
PREINIT:
int i;
PPCODE:
for (i = 0; i < NUSERFLAGS; i++)
if (stream->perm_user_flags & (1 << i))
XPUSHs(sv_2mortal(newSVpv(stream->user_flags[i], 0)));
MODULE = Mail::Cclient PACKAGE = Mail::Cclient PREFIX = mail_
#
# Message Data Fetching Functions
#
void
mail_fetchfast(stream, sequence, ...)
Mail::Cclient stream
char * sequence
PREINIT:
int i;
long flags = 0;
PPCODE:
for (i = 2; i < items; i++) {
char *flag = SvPV(ST(i), na);
if (strEQ(flag, "uid"))
flags |= FT_UID;
else {
croak("unknown flag \"%s\" passed to Mail::Cclient::fetchfast",
flag);
}
}
mail_fetchfast_full(stream, sequence, flags);
ST(0) = &sv_yes;
void
mail_fetchflags(stream, sequence, ...)
Mail::Cclient stream
char * sequence
PREINIT:
int i;
long flags = 0;
PPCODE:
for (i = 2; i < items; i++) {
char *flag = SvPV(ST(i), na);
if (strEQ(flag, "uid"))
flags |= FT_UID;
else {
croak("unknown flag \"%s\" passed to"
" Mail::Cclient::fetchflags", flag);
}
}
mail_fetchflags_full(stream, sequence, flags);
ST(0) = &sv_yes;
void
mail_fetchstructure(stream, msgno, ...)
Mail::Cclient stream
unsigned long msgno
PREINIT:
int i;
long flags = 0;
ENVELOPE *e;
BODY **bodyp = 0;
BODY *body = 0;
PPCODE:
for (i = 2; i < items; i++) {
char *flag = SvPV(ST(i), na);
if (strEQ(flag, "uid"))
flags |= FT_UID;
else {
croak("unknown flag \"%s\" passed to"
" Mail::Cclient::fetchstructure", flag);
}
}
if (GIMME == G_ARRAY)
bodyp = &body;
e = mail_fetchstructure_full(stream, msgno, bodyp, flags);
XPUSHs(sv_2mortal(make_envelope(e)));
if (GIMME == G_ARRAY)
XPUSHs(sv_2mortal(make_body(body)));
void
mail_fetchheader(stream, msgno, ...)
Mail::Cclient stream
unsigned long msgno
PREINIT:
int i;
long flags = 0;
STRINGLIST *lines = 0;
unsigned long len;
char *hdr;
PPCODE:
for (i = 2; i < items; i++) {
SV *sv = ST(i);
if (SvROK(sv)) {
sv = (SV*)SvRV(sv);
if (SvTYPE(sv) != SVt_PVAV) {
croak("reference to non-list passed to"
" Mail::Cclient::fetchheader");
}
lines = av_to_stringlist((AV*)sv);
}
else {
char *flag = SvPV(sv, na);
if (strEQ(flag, "uid"))
flags |= FT_UID;
else if (strEQ(flag, "not"))
flags |= FT_NOT;
else if (strEQ(flag, "internal"))
flags |= FT_INTERNAL;
else if (strEQ(flag, "prefetchtext"))
flags |= FT_PREFETCHTEXT;
else {
croak("unknown flag \"%s\" passed to"
" Mail::Cclient::fetchheader", flag);
}
}
}
hdr = mail_fetchheader_full(stream, msgno, lines, &len, flags);
XPUSHs(sv_2mortal(newSVpv(hdr, len)));
if (lines)
mail_free_stringlist(&lines);
void
mail_fetchtext(stream, msgno, ...)
Mail::Cclient stream
unsigned long msgno
PREINIT:
int i;
long flags = 0;
unsigned long len;
char *text;
PPCODE:
for (i = 2; i < items; i++) {
char *flag = SvPV(ST(i), na);
if (strEQ(flag, "uid"))
flags |= FT_UID;
else if (strEQ(flag, "peek"))
flags |= FT_NOT;
else if (strEQ(flag, "internal"))
flags |= FT_INTERNAL;
else {
croak("unknown flag \"%s\" passed to"
" Mail::Cclient::fetchtext", flag);
}
}
text = mail_fetchtext_full(stream, msgno, &len, flags);
XPUSHs(sv_2mortal(newSVpv(text, len)));
void
mail_fetchbody(stream, msgno, section, ...)
Mail::Cclient stream
unsigned long msgno
char * section
PREINIT:
int i;
long flags = 0;
unsigned long len;
char *body;
PPCODE:
for (i = 3; i < items; i++) {
char *flag = SvPV(ST(i), na);
if (strEQ(flag, "uid"))
flags |= FT_UID;
else if (strEQ(flag, "peek"))
flags |= FT_NOT;
else if (strEQ(flag, "internal"))
flags |= FT_INTERNAL;
else {
croak("unknown flag \"%s\" passed to Mail::Cclient::fetchbody",
flag);
}
}
body = mail_fetchbody_full(stream, msgno, section, &len, flags);
XPUSHs(sv_2mortal(newSVpv(body, len)));
unsigned long
mail_uid(stream, msgno)
Mail::Cclient stream
unsigned long msgno
void
mail_elt(stream, msgno)
Mail::Cclient stream
unsigned long msgno
PREINIT:
MESSAGECACHE *elt;
PPCODE:
elt = mail_elt(stream, msgno);
XPUSHs(elt ? sv_2mortal(make_elt(stream, elt)) : &sv_undef);
#
# Message Status Manipulation Functions
#
void
mail_setflag(stream, sequence, flag, ...)
Mail::Cclient stream
char * sequence
char * flag
PREINIT:
int i;
long flags = 0;
ALIAS:
clearflag = 1
CODE:
for (i = 3; i < items; i++) {
char *fl = SvPV(ST(i), na);
if (strEQ(fl, "uid"))
flags |= ST_UID;
else if (strEQ(fl, "silent"))
flags |= ST_SILENT;
else {
croak("unknown flag \"%s\" passed to Mail::Cclient::%s",
fl, ix == 1 ? "setflag" : "clearflag");
}
}
if (ix == 1)
mail_clearflag_full(stream, sequence, flag, flags);
else
mail_setflag_full(stream, sequence, flag, flags);
#
# Miscellaneous Mailbox and Message Functions
#
long
mail_ping(stream)
Mail::Cclient stream
void
mail_check(stream)
Mail::Cclient stream
void
mail_expunge(stream)
Mail::Cclient stream
long
mail_copy(stream, sequence, mailbox, ...)
Mail::Cclient stream
char * sequence
char * mailbox
ALIAS:
move = 1
PREINIT:
int i;
if (sv)
mail_parameters(stream, SET_LOCKEACCESERROR, (void*)SvIV(sv));
else
res_int = (int) mail_parameters(stream, GET_LOCKEACCESERROR, 0);
} else if (strEQ(param, "LISTMAXLEVEL")) {
if (sv)
mail_parameters(stream, SET_LISTMAXLEVEL, (void*)SvIV(sv));
else
res_int = (int) mail_parameters(stream, GET_LISTMAXLEVEL, 0);
} else {
croak("no such parameter name: %s", param);
}
if (sv)
ST(0) = &sv_yes;
else {
if (res_str)
XPUSHs(sv_2mortal(newSVpv(res_str, 0)));
else
XPUSHs(sv_2mortal(newSViv(res_int)));
}
#
# Utility Functions
#
void
mail_debug(stream)
Mail::Cclient stream
void
mail_nodebug(stream)
Mail::Cclient stream
#define mail_set_sequence(stream, seq) mail_sequence(stream, seq)
long
mail_set_sequence(stream, sequence)
Mail::Cclient stream
char * sequence
#define mail_uid_set_sequence(stream, seq) mail_uid_sequence(stream, seq)
long
mail_uid_set_sequence(stream, sequence)
Mail::Cclient stream
char * sequence
MODULE = Mail::Cclient PACKAGE = Mail::Cclient
#
# MIME type conversion functions
#
void
rfc822_base64(source)
SV * source
PREINIT:
STRLEN srcl;
unsigned long len;
unsigned char *s;
PPCODE:
s = (unsigned char*)SvPV(source, srcl);
s = rfc822_base64(s, (unsigned long)srcl, &len);
XPUSHs(sv_2mortal(newSVpv((char*)s, (STRLEN)len)));
void
rfc822_qprint(source)
SV * source
PREINIT:
STRLEN srcl;
unsigned long len;
unsigned char *s;
PPCODE:
s = (unsigned char*)SvPV(source, srcl);
s = rfc822_qprint(s, (unsigned long)srcl, &len);
XPUSHs(sv_2mortal(newSVpv((char*)s, (STRLEN)len)));
#
# Utility functions
#
#define DATE_BUFF_SIZE 64
char *
rfc822_date()
PREINIT:
static char date[DATE_BUFF_SIZE];
CODE:
rfc822_date(date);
RETVAL = date;
OUTPUT:
RETVAL
BOOT:
#include "linkage.c"
mailstream2sv = newHV();
stash_Cclient = gv_stashpv("Mail::Cclient", TRUE);
stash_Address = gv_stashpv("Mail::Cclient::Address", TRUE);
stash_Envelope = gv_stashpv("Mail::Cclient::Envelope", TRUE);
stash_Body = gv_stashpv("Mail::Cclient::Body", TRUE);
stash_Elt = gv_stashpv("Mail::Cclient::Elt", TRUE);
callback = perl_get_hv("Mail::Cclient::_callback", TRUE);
address_fields = newRV((SV*)perl_get_hv("Mail::Cclient::"
"Address::FIELDS", TRUE));
envelope_fields = newRV((SV*)perl_get_hv("Mail::Cclient::"
"Envelope::FIELDS", TRUE));
body_fields = newRV((SV*)perl_get_hv("Mail::Cclient::Body::FIELDS",
TRUE));
elt_fields = newRV((SV*)perl_get_hv("Mail::Cclient::Elt::FIELDS",
TRUE));
( run in 0.819 second using v1.01-cache-2.11-cpan-71847e10f99 )