\hypertarget{structlws__email}{}\section{lws\+\_\+email Struct Reference}
\label{structlws__email}\index{lws\+\_\+email@{lws\+\_\+email}}


{\ttfamily \#include $<$libwebsockets.\+h$>$}

\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
void $\ast$ \hyperlink{structlws__email_add1341456045382c183f4c763bdea6bc}{data}
\item 
uv\+\_\+loop\+\_\+t $\ast$ \hyperlink{structlws__email_ab5fbf121195a8e67509c78a42cfbe168}{loop}
\item 
char \hyperlink{structlws__email_a472ae23fc9fca6599e5c512bc21458d2}{email\+\_\+smtp\+\_\+ip} \mbox{[}32\mbox{]}
\item 
char \hyperlink{structlws__email_a939e5d7ee0339a16de73bde71ab4d4d9}{email\+\_\+helo} \mbox{[}32\mbox{]}
\item 
char \hyperlink{structlws__email_af7f0ae934347d81071f63a963301f9e2}{email\+\_\+from} \mbox{[}100\mbox{]}
\item 
char \hyperlink{structlws__email_a6453a8b92b3de6d2c2101af3edce685e}{email\+\_\+to} \mbox{[}100\mbox{]}
\item 
unsigned int \hyperlink{structlws__email_a7bbc1964889c984b3da723c86a210e05}{max\+\_\+content\+\_\+size}
\item 
int($\ast$ \hyperlink{structlws__email_ad8dc60353ee246d84dd59ec0591e9719}{on\+\_\+next} )(struct \hyperlink{structlws__email}{lws\+\_\+email} $\ast$email)
\item 
int($\ast$ \hyperlink{structlws__email_a39ef6263d58eb40cca417c8697b227d8}{on\+\_\+sent} )(struct \hyperlink{structlws__email}{lws\+\_\+email} $\ast$email)
\item 
int($\ast$ \hyperlink{structlws__email_a2aff78c8e04db243052aa91b4d87e987}{on\+\_\+get\+\_\+body} )(struct \hyperlink{structlws__email}{lws\+\_\+email} $\ast$email, char $\ast$buf, int len)
\item 
uv\+\_\+timer\+\_\+t \hyperlink{structlws__email_a77723e2f2b940b1c879ef5e1cd88c2be}{timeout\+\_\+email}
\item 
enum \hyperlink{group__smtp_ga116be79bf44f9dc2a97f46e051fe4dc0}{lwsgs\+\_\+smtp\+\_\+states} \hyperlink{structlws__email_ac6115d3cbef2e8bac62cc00895bf5fd3}{estate}
\item 
uv\+\_\+connect\+\_\+t \hyperlink{structlws__email_a5f53d4c5a1e34b0dcaa8787e2eabb1b3}{email\+\_\+connect\+\_\+req}
\item 
uv\+\_\+tcp\+\_\+t \hyperlink{structlws__email_a01f31934166dc6d01e8a375012f8ad1e}{email\+\_\+client}
\item 
time\+\_\+t \hyperlink{structlws__email_a9747ca85597788c2d118d287df47b7c1}{email\+\_\+connect\+\_\+started}
\item 
char \hyperlink{structlws__email_a8f34ec0643a817be67ef4276aeb7fb82}{email\+\_\+buf} \mbox{[}256\mbox{]}
\item 
char $\ast$ \hyperlink{structlws__email_a6fff03c5a5d369a2aa3cab0c897b1bed}{content}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
struct \hyperlink{structlws__email}{lws\+\_\+email} -\/ abstract context for performing S\+M\+TP operations 

\subsection{Field Documentation}
\index{lws\+\_\+email@{lws\+\_\+email}!content@{content}}
\index{content@{content}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{content}{content}}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ lws\+\_\+email\+::content}\hypertarget{structlws__email_a6fff03c5a5d369a2aa3cab0c897b1bed}{}\label{structlws__email_a6fff03c5a5d369a2aa3cab0c897b1bed}
private \index{lws\+\_\+email@{lws\+\_\+email}!data@{data}}
\index{data@{data}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{data}{data}}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ lws\+\_\+email\+::data}\hypertarget{structlws__email_add1341456045382c183f4c763bdea6bc}{}\label{structlws__email_add1341456045382c183f4c763bdea6bc}
opaque pointer set by user code and available to the callbacks \index{lws\+\_\+email@{lws\+\_\+email}!email\+\_\+buf@{email\+\_\+buf}}
\index{email\+\_\+buf@{email\+\_\+buf}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{email\+\_\+buf}{email\_buf}}]{\setlength{\rightskip}{0pt plus 5cm}char lws\+\_\+email\+::email\+\_\+buf\mbox{[}256\mbox{]}}\hypertarget{structlws__email_a8f34ec0643a817be67ef4276aeb7fb82}{}\label{structlws__email_a8f34ec0643a817be67ef4276aeb7fb82}
private \index{lws\+\_\+email@{lws\+\_\+email}!email\+\_\+client@{email\+\_\+client}}
\index{email\+\_\+client@{email\+\_\+client}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{email\+\_\+client}{email\_client}}]{\setlength{\rightskip}{0pt plus 5cm}uv\+\_\+tcp\+\_\+t lws\+\_\+email\+::email\+\_\+client}\hypertarget{structlws__email_a01f31934166dc6d01e8a375012f8ad1e}{}\label{structlws__email_a01f31934166dc6d01e8a375012f8ad1e}
private \index{lws\+\_\+email@{lws\+\_\+email}!email\+\_\+connect\+\_\+req@{email\+\_\+connect\+\_\+req}}
\index{email\+\_\+connect\+\_\+req@{email\+\_\+connect\+\_\+req}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{email\+\_\+connect\+\_\+req}{email\_connect\_req}}]{\setlength{\rightskip}{0pt plus 5cm}uv\+\_\+connect\+\_\+t lws\+\_\+email\+::email\+\_\+connect\+\_\+req}\hypertarget{structlws__email_a5f53d4c5a1e34b0dcaa8787e2eabb1b3}{}\label{structlws__email_a5f53d4c5a1e34b0dcaa8787e2eabb1b3}
private \index{lws\+\_\+email@{lws\+\_\+email}!email\+\_\+connect\+\_\+started@{email\+\_\+connect\+\_\+started}}
\index{email\+\_\+connect\+\_\+started@{email\+\_\+connect\+\_\+started}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{email\+\_\+connect\+\_\+started}{email\_connect\_started}}]{\setlength{\rightskip}{0pt plus 5cm}time\+\_\+t lws\+\_\+email\+::email\+\_\+connect\+\_\+started}\hypertarget{structlws__email_a9747ca85597788c2d118d287df47b7c1}{}\label{structlws__email_a9747ca85597788c2d118d287df47b7c1}
private \index{lws\+\_\+email@{lws\+\_\+email}!email\+\_\+from@{email\+\_\+from}}
\index{email\+\_\+from@{email\+\_\+from}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{email\+\_\+from}{email\_from}}]{\setlength{\rightskip}{0pt plus 5cm}char lws\+\_\+email\+::email\+\_\+from\mbox{[}100\mbox{]}}\hypertarget{structlws__email_af7f0ae934347d81071f63a963301f9e2}{}\label{structlws__email_af7f0ae934347d81071f63a963301f9e2}
Fill before init or on\+\_\+next \index{lws\+\_\+email@{lws\+\_\+email}!email\+\_\+helo@{email\+\_\+helo}}
\index{email\+\_\+helo@{email\+\_\+helo}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{email\+\_\+helo}{email\_helo}}]{\setlength{\rightskip}{0pt plus 5cm}char lws\+\_\+email\+::email\+\_\+helo\mbox{[}32\mbox{]}}\hypertarget{structlws__email_a939e5d7ee0339a16de73bde71ab4d4d9}{}\label{structlws__email_a939e5d7ee0339a16de73bde71ab4d4d9}
Fill before init, eg, \char`\"{}myserver.\+com\char`\"{} \index{lws\+\_\+email@{lws\+\_\+email}!email\+\_\+smtp\+\_\+ip@{email\+\_\+smtp\+\_\+ip}}
\index{email\+\_\+smtp\+\_\+ip@{email\+\_\+smtp\+\_\+ip}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{email\+\_\+smtp\+\_\+ip}{email\_smtp\_ip}}]{\setlength{\rightskip}{0pt plus 5cm}char lws\+\_\+email\+::email\+\_\+smtp\+\_\+ip\mbox{[}32\mbox{]}}\hypertarget{structlws__email_a472ae23fc9fca6599e5c512bc21458d2}{}\label{structlws__email_a472ae23fc9fca6599e5c512bc21458d2}
Fill before init, eg, \char`\"{}127.\+0.\+0.\+1\char`\"{} \index{lws\+\_\+email@{lws\+\_\+email}!email\+\_\+to@{email\+\_\+to}}
\index{email\+\_\+to@{email\+\_\+to}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{email\+\_\+to}{email\_to}}]{\setlength{\rightskip}{0pt plus 5cm}char lws\+\_\+email\+::email\+\_\+to\mbox{[}100\mbox{]}}\hypertarget{structlws__email_a6453a8b92b3de6d2c2101af3edce685e}{}\label{structlws__email_a6453a8b92b3de6d2c2101af3edce685e}
Fill before init or on\+\_\+next \index{lws\+\_\+email@{lws\+\_\+email}!estate@{estate}}
\index{estate@{estate}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{estate}{estate}}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf lwsgs\+\_\+smtp\+\_\+states} lws\+\_\+email\+::estate}\hypertarget{structlws__email_ac6115d3cbef2e8bac62cc00895bf5fd3}{}\label{structlws__email_ac6115d3cbef2e8bac62cc00895bf5fd3}
private \index{lws\+\_\+email@{lws\+\_\+email}!loop@{loop}}
\index{loop@{loop}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{loop}{loop}}]{\setlength{\rightskip}{0pt plus 5cm}uv\+\_\+loop\+\_\+t$\ast$ lws\+\_\+email\+::loop}\hypertarget{structlws__email_ab5fbf121195a8e67509c78a42cfbe168}{}\label{structlws__email_ab5fbf121195a8e67509c78a42cfbe168}
the libuv loop we will work on \index{lws\+\_\+email@{lws\+\_\+email}!max\+\_\+content\+\_\+size@{max\+\_\+content\+\_\+size}}
\index{max\+\_\+content\+\_\+size@{max\+\_\+content\+\_\+size}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{max\+\_\+content\+\_\+size}{max\_content\_size}}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int lws\+\_\+email\+::max\+\_\+content\+\_\+size}\hypertarget{structlws__email_a7bbc1964889c984b3da723c86a210e05}{}\label{structlws__email_a7bbc1964889c984b3da723c86a210e05}
largest possible email body size \index{lws\+\_\+email@{lws\+\_\+email}!on\+\_\+get\+\_\+body@{on\+\_\+get\+\_\+body}}
\index{on\+\_\+get\+\_\+body@{on\+\_\+get\+\_\+body}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{on\+\_\+get\+\_\+body}{on\_get\_body}}]{\setlength{\rightskip}{0pt plus 5cm}int($\ast$ lws\+\_\+email\+::on\+\_\+get\+\_\+body) (struct {\bf lws\+\_\+email} $\ast$email, char $\ast$buf, int len)}\hypertarget{structlws__email_a2aff78c8e04db243052aa91b4d87e987}{}\label{structlws__email_a2aff78c8e04db243052aa91b4d87e987}
(Fill in before calling lws\+\_\+email\+\_\+init) called when the body part of the queued email is about to be sent to the S\+M\+TP server. \index{lws\+\_\+email@{lws\+\_\+email}!on\+\_\+next@{on\+\_\+next}}
\index{on\+\_\+next@{on\+\_\+next}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{on\+\_\+next}{on\_next}}]{\setlength{\rightskip}{0pt plus 5cm}int($\ast$ lws\+\_\+email\+::on\+\_\+next) (struct {\bf lws\+\_\+email} $\ast$email)}\hypertarget{structlws__email_ad8dc60353ee246d84dd59ec0591e9719}{}\label{structlws__email_ad8dc60353ee246d84dd59ec0591e9719}
(Fill in before calling lws\+\_\+email\+\_\+init) called when idle, 0 = another email to send, nonzero is idle. If you return 0, all of the email\+\_\+$\ast$ char arrays must be set to something useful. \index{lws\+\_\+email@{lws\+\_\+email}!on\+\_\+sent@{on\+\_\+sent}}
\index{on\+\_\+sent@{on\+\_\+sent}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{on\+\_\+sent}{on\_sent}}]{\setlength{\rightskip}{0pt plus 5cm}int($\ast$ lws\+\_\+email\+::on\+\_\+sent) (struct {\bf lws\+\_\+email} $\ast$email)}\hypertarget{structlws__email_a39ef6263d58eb40cca417c8697b227d8}{}\label{structlws__email_a39ef6263d58eb40cca417c8697b227d8}
(Fill in before calling lws\+\_\+email\+\_\+init) called when transfer of the email to the S\+M\+TP server was successful, your callback would remove the current email from its queue \index{lws\+\_\+email@{lws\+\_\+email}!timeout\+\_\+email@{timeout\+\_\+email}}
\index{timeout\+\_\+email@{timeout\+\_\+email}!lws\+\_\+email@{lws\+\_\+email}}
\subsubsection[{\texorpdfstring{timeout\+\_\+email}{timeout\_email}}]{\setlength{\rightskip}{0pt plus 5cm}uv\+\_\+timer\+\_\+t lws\+\_\+email\+::timeout\+\_\+email}\hypertarget{structlws__email_a77723e2f2b940b1c879ef5e1cd88c2be}{}\label{structlws__email_a77723e2f2b940b1c879ef5e1cd88c2be}
private 

The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
lib/\hyperlink{libwebsockets_8h}{libwebsockets.\+h}\end{DoxyCompactItemize}
