imagemagick pdf to image c# : Add image field to pdf form SDK Library service wpf asp.net .net dnn 05-welling-php-mysql-web71-part122

677
Reading Mail
$result = $conn->query($query);
}
return $result;
}
After execution returns to 
index.php
,the body stage runs the following code:
case ‘store-settings’ :
case ‘account-setup’ :
case ‘delete-account’ :
{
display_account_setup($_SESSION[‘auth_user’]);
break;
Notice that this is the same code you ran before; it just displays the list of the user’s
accounts.
Reading Mail
After the user has set up some accounts,you can move on to the main game:connecting
to these accounts and reading mail.
Selecting an Account
You need to select one of the user’s accounts to read mail from.The currently selected
account is stored in the 
$selected_account
session variable.
If the user has a single account registered in the system,it will be automatically
selected when he logs in,as follows:
if(number_of_accounts($_SESSION[‘auth_user’])==1)
{
$accounts = get_account_list($_SESSION[‘auth_user’]); 
$_SESSION[‘selected_account’] = $accounts[0]; 
The
number_of_accounts()
function,from 
mail_fns.php
,works out whether the user
has more than one account;this function is shown in Listing 29.7.The
get_account_list()
function retrieves an array of the user’s account IDs.In this case,
there is exactly one,so you can access it as the array’s 
0
value.
Listing 29.6 Continued 
Add image field to pdf form - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
add text field to pdf; add attachment to pdf form
Add image field to pdf form - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
create a pdf form from excel; chrome pdf save form data
678
Chapter 29 Building a Web-Based Email Service
Listing 29.7 number_of_accounts() Function from mail_fns.php—Function to
Work Out How Many Accounts a User Has Registered
function number_of_accounts($auth_user)
{
// get the number of accounts that belong to this user
$query = “select count(*) from accounts where username = ‘$auth_user’”;
if($conn=db_connect())
{
$result = $conn->query($query);
if($result)
{
$row = $result->fetch_array();
return $row[0];
}
}
return 0;
}
The 
get_account_list()
function is similar to the 
get_accounts()
function you
looked at before except that it retrieves only the account names.
If a user has multiple accounts registered,he will need to select one to use.In this
case,the headers contain a 
SELECT
option that lists the available mailboxes.Choosing the
appropriate one automatically displays the mailbox for that account.You can see this in
Figure 29.5.
Figure 29.5 After the account is selected from the 
SELECT
box, the mail
from that account is downloaded and displayed.
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Insert images into PDF form field. Access to freeware download and online C#.NET class source code. How to insert and add image, picture, digital photo, scanned
create a fillable pdf form in word; add image field to pdf form
VB.NET PDF insert image library: insert images into PDF in vb.net
Add images to any selected PDF page in VB.NET. attributes adjust functionalities, such as resize image by zooming Insert images into PDF form field in VB.NET.
adding text fields to pdf acrobat; build pdf forms
679
Reading Mail
This 
SELECT
option is generated in the 
do_html_header()
function from
output_fns.php
,as shown in the following code fragment:
// include the account select box only if the user has more than one account
if(number_of_accounts($auth_user)>1)
{
echo ‘<form target=”index.php?action=open-mailbox” method=”post”>’;
echo ‘<td bgcolor=”#ff6600” align=”right” valign=”middle”>’;
display_account_select($auth_user, $selected_account);
echo ‘</td>’;
echo ‘</form>’;
}
We have generally avoided discussing the HTML used in the examples in this book,but
the HTML generated by the function 
display_account_select()
bears a visit.
Depending on the accounts the current user has,
display_account_select()
gener-
ates HTML like this:
<select onchange=”window.location=this.options[selectedIndex].value”
name=”account”>
<option value=”0” selected>
Choose Account</a>
<option value=”index.php?action=select-account&account=10”>
mail.domain.com
</option>
<option value=”index.php?action=select-account&account=11”>
mail.server.com
</option>
<option value=”index.php?action=select-account&account=9”>
localhost
</option>
</select>
Most of this code is just an HTML 
select
element,but it also includes a little
JavaScript. In the same way that PHP can generate HTML,it can also be used to gener-
ate client-side scripts.
Whenever a change event happens to this element,JavaScript sets 
window.location
to the value of the option.If your user selects the first option in the 
select
,
window.location
will be set to 
‘index.php?action=select-account&account=10’
.
This results in this URL being loaded. Obviously, if the user has a browser that does not
support JavaScript or has JavaScript disabled,this code will have no effect.
The 
display_account_select()
function, from 
output_fns.php
,gets the available
account list and displays the 
SELECT
.It also uses the 
get_account_list()
function dis-
cussed previously.
VB.NET PDF Form Data Read library: extract form data from PDF in
a full-featured PDF software, it should have functions for processing text, image as well DLLs: Read and Extract Field Data in VB.NET. Add necessary references:
changing font in pdf form; change font pdf fillable form
C# PDF Form Data Read Library: extract form data from PDF in C#.
PDF software, it should have functions for processing text, image as well as C#.NET Project DLLs: Read and Extract Field Data in C#. Add necessary references:
adding text to pdf form; create a pdf form that can be filled out
680
Chapter 29 Building a Web-Based Email Service
Choosing one of the options in the 
SELECT
activates the 
select_account
event.If
you look at the URL in Figure 29.5,you can see this event appended to the end of the
URL,along with the account ID of the chosen account.
Appending these 
GET
variables has two effects.First,in the preprocessing stage of
index.php
,the chosen account is stored in the session variable 
$selected_account
,as
follows:
case ‘select-account’ :
// if have chosen a valid account, store it as a session variable
if($account&&account_exists($_SESSION[‘auth_user’], $account))
{
$_SESSION[‘selected_account’] = $account;
}
}
Second,when the body stage of the script is executed,the following code is executed:
case ‘select-account’ :
case ‘view-mailbox’ :
{
// if mailbox just chosen, or view mailbox chosen, show mailbox
display_list($_SESSION[‘auth_user’], $_SESSION[‘selected_account’]);
break;
As you can see, you take the same action here as if the user had chosen the View
Mailbox option.We look at that action next.
Viewing Mailbox Contents
Mailbox contents can be viewed with the 
display_list()
function.This function dis-
plays a list of all the messages in the mailbox.The code for this function is shown in
Listing 29.8.
Listing 29.8 display_list() Function from output_fns.php—Function to
Display All Mailbox Messages
function display_list($auth_user, $accountid)
{
// show the list of messages in this mailbox
global $table_width;
if(!$accountid)
{
VB.NET PDF Form Data fill-in library: auto fill-in PDF form data
PDF Page. Image: Copy, Paste, Cut Image in Page. Fill-in Field Data. Field: Insert, Delete, Update Field. Images. Redact Pages. Annotation & Drawing. Add Sticky Note
change font in pdf form field; add submit button to pdf form
C# PDF Form Data fill-in Library: auto fill-in PDF form data in C#
Following C# sample code can help you have a quick evaluation of it. C#.NET Demo Code: Auto Fill-in Field Data to PDF in C#.NET. Add necessary references:
convert word document to editable pdf form; adding a signature to a pdf form
681
Reading Mail
echo ‘No mailbox selected<br /><br /><br /><br /><br /><br />.’;
}
else
{
$imap = open_mailbox($auth_user, $accountid);
if($imap)
{
echo “<table width = $table_width cellspacing = 0 
cellpadding = 6  border = 0>”;
$headers = imap_headers($imap);
// we could reformat this data, or get other details using 
// imap_fetchheaders, but this is not a bad summary so we just echo each
$messages = sizeof($headers);
for($i = 0; $i<$messages; $i++)
{
echo ‘<tr><td bgcolor = “‘;
if($i%2)
echo ‘#ffffff’;
else 
echo ‘#ffffcc’;
echo ‘“><a href =”index.php?action=view-message&messageid=’.($i+1).’”>’;
echo $headers[$i];
echo “</a></td></tr>\n”;
}
echo ‘</table>’;
else 
{
$account = get_account_settings($auth_user, $accountid);
echo ‘could not open mail box ‘.$account[‘server’].
‘.<br /><br /><br /><br />’;
}  
}
}
In the 
display_list()
function,you actually begin to use PHP’s IMAP functions.The
two key parts of this function are opening the mailbox and reading the message headers.
You open the mailbox for a user account with a call to the 
open_mailbox()
function
written in 
mail_fns.php
.This function is shown in Listing 29.9.
Listing 29.8 Continued 
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Scan image to PDF, tiff and various image formats. Get image information, such as its location, zonal information Able to edit, add, delete, move, and output PDF
add form fields to pdf without acrobat; adding text field to pdf
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
multiple types of image from PDF file in VB.NET, like XObject Image, XObject Form, Inline Image DLLs for PDF Image Extraction in VB.NET. Add necessary references
cannot save pdf form in reader; create a pdf form
682
Chapter 29 Building a Web-Based Email Service
Listing 29.9 open_mailbox() Function from mail_fns.php—This Function
Connects to a User Mailbox
function open_mailbox($auth_user, $accountid)
{
// select mailbox if there is only one
if(number_of_accounts($auth_user)==1)
{
$accounts = get_account_list($auth_user); 
$_SESSION[‘selected_account’] = $accounts[0]; 
$accountid = $accounts[0];
}
// connect to the POP3 or IMAP server the user has selected
$settings = get_account_settings($auth_user, $accountid);
if(!sizeof($settings)) return 0;
$mailbox = ‘{‘.$settings[server];
if($settings[type]==’POP3’)
$mailbox .= ‘/pop3’;
$mailbox .= ‘:’.$settings[port].’}INBOX’;
// suppress warning, remember to check return value  
@ $imap = imap_open($mailbox, $settings[‘remoteuser’], 
$settings[‘remotepassword’]);
return  $imap;
}
You actually open the mailbox with the 
imap_open()
function,which has the following
prototype:
int imap_open (string mailbox, string username, string password [, int options])
The parameters you need to pass to it are as follows:
n
mailbox
—This string should contain the server name and mailbox name, and
optionally a port number and protocol.The format of this string is
{hostname/protocol:port}boxname
If the protocol is not specified, it defaults to IMAP.In the code we wrote,you can
see that we specify POP3 if the user has specified that protocol for a particular
account.
683
Reading Mail
For example,to read mail from the local machine using the default ports,you
would use the following mailbox name for IMAP:
{localhost:143}INBOX
And you would use this one for POP3:
{localhost/pop3:110}INBOX
n
username
—The username for the account.
n
password
—The password for the account.
You can also pass it optional flags to specify options such as 
“open mailbox in read-
only mode”
.
Note that we constructed the mailbox string piece by piece with the concatenation
operator before passing it to 
imap_open()
.You need to be careful how you construct
this string because strings containing 
{$
can cause problems in PHP.
This function call returns an IMAP stream if the mailbox can be opened and 
false
if
it cannot.
When you are finished with an IMAP stream,you can close it by using
imap_close(imap_stream)
.In this function,the IMAP stream is passed back to the
main program.You then use the 
imap_headers()
function to get the email headers for
display:
$headers = imap_headers($imap);
This function returns header information for all mail messages in the mailbox you have
connected to.The information is returned as an array, one line per message.This infor-
mation has not been formatted.The function just outputs one line per message,so you
can see from looking at Figure 29.5 what the output looks like.
You can get more information about email headers using the confusing, similarly
named 
imap_header()
function. In this case,though,the 
imap_headers()
function
gives you enough detail for the purposes of this project.
Reading a Mail Message
Each message in the previous 
display_list()
function is set up to link to specific
email messages.Each link is of the form
index.php?action=view-message&messageid=6
The 
messageid
is the sequence number used in the headers retrieved earlier.Note that
IMAP messages are numbered from 1,not 0.
If the user clicks one of these links,he will see output like that shown in Figure 29.6.
684
Chapter 29 Building a Web-Based Email Service
Figure 29.6 Using the 
view-message
action shows a particular message; in
this case, it’s spam.
When you enter these parameters into the 
index.php
script,you execute the following
code:
case ‘show-headers’ :
case ‘hide-headers’ :
case ‘view-message’ :
{
// if we have just picked a message from the list, or were looking at 
// a message and chose to hide or view headers, load a message 
$fullheaders = ($action==’show-headers’); 
display_message($_SESSION[‘auth_user’], 
$_SESSION[‘selected_account’], 
$messageid, $fullheaders);
break;
}
Here, you check the value of the 
$action
being equal to 
‘show-headers’
.In this case,
it is 
false
,and 
$fullheaders
is set equal to 
false
.We look at the 
‘show-headers’
action in a moment.
The line
$fullheaders = ($action==’show-headers’);
could have been more verbosely—but perhaps more clearly—written as
if($action==’show-headers’)
$fullheaders = true;
else
$fullheaders = false;
685
Reading Mail
Next, you call the
display_message()
function.Most of this function outputs plain
HTML,so we do not go through it here.It calls the 
retrieve_message()
function to
get the appropriate message from the mailbox:
$message = retrieve_message($auth_user, $accountid, $messageid, $fullheaders);
The 
retrieve_message()
function is in the 
mail_fns.php
library.You can see the code
for it in Listing 29.10.
Listing 29.10 retrieve_message() Function from mail_fns.php—This Function
Retrieves One Specific Message from a Mailbox
function retrieve_message($auth_user, $accountid, $messageid, $fullheaders)
{
$message = array();
if(!($auth_user && $messageid && $accountid))
return false;
$imap = open_mailbox($auth_user, $accountid);
if(!$imap) 
return false;      
$header = imap_header($imap, $messageid);
if(!$header) 
return false;
$message[‘body’] = imap_body($imap, $messageid);
if(!$message[‘body’]) 
$message[‘body’] = “[This message has no body]\n\n\n\n\n\n”;
if($fullheaders)
$message[‘fullheaders’] = imap_fetchheader($imap, $messageid);
else
$message[‘fullheaders’] = ‘’;
$message[‘subject’] = $header->subject;
$message[‘fromaddress’] =   $header->fromaddress;
$message[‘toaddress’] =   $header->toaddress;
$message[‘ccaddress’] =   $header->ccaddress;
$message[‘date’] =   $header->date;
// note we can get more detailed information by using from and to 
// rather than fromaddress and toaddress, but these are easier
imap_close($imap); 
return $message;
}
686
Chapter 29 Building a Web-Based Email Service
Again, you use 
open_mailbox()
to open the user’s mailbox.This time,however,you are
after a specific message.Using this function library,you download the message headers
and message body separately.
The three IMAP functions used here are 
imap_header()
,
imap_fetchheader()
,and
imap_body()
.Note that the two header functions are distinct from 
imap_headers()
,the
one used previously.They are somewhat confusingly named.To summarize
n
imap_headers()
—Returns a summary of the headers for all the messages in a
mailbox. It returns them as an array with one element per message.
n
imap_header()
—Returns the headers for one specific message in the form of an
object.
n
imap_fetchheader()
—Returns the headers for one specific message in the form
of a string.
In this case,you use 
imap_header()
to fill out specific header fields and 
imap_
fetchheader()
to show the user the full headers if requested.(We come back to this
topic later.)
You use 
imap_header()
and 
imap_body()
to build an array containing all the ele-
ments of a message that you are interested in.You call 
imap_header()
as follows:
$header = imap_header($imap, $messageid);
You can then extract each of the fields you require from the object:
$message[‘subject’] = $header->subject;
You call 
imap_body()
to add the message body to the array as follows:
$message[‘body’] = imap_body($imap, $messageid);
Finally,you close the mailbox with 
imap_close()
and return the array you have built.
The 
display_message()
function can then display the message’s fields in the form
shown in Figure 29.6.
Viewing Message Headers
As you can see in Figure 29.6, the message contains a Show Headers button.It activates
the 
show-headers
option,which adds the full message headers to the message display.If
the user clicks this button,he will see output similar to that shown in Figure 29.7.
Documents you may be interested
Documents you may be interested