View previous topic :: View next topic |
Author |
Message |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Wed May 12, 2004 5:36 am Post subject: Mail Server Issues |
|
|
G'Day everyone,
I am trying to setup a working subscription system for my website, but am having problems working with a Mail Server. The mail server i have is Workgroup Mail. Im not sure how to configure my Mail Server so that when the user enters their information, an email is sent to them with verification instructions. My code is fine, but im not able to send emails to them when the function is called. Some of you may be familiar with the book "Creating Interactive Websites with PHP and Web Services" By Eric Rosebrock. This is the book i am working from. I dont have a static IP address, but i am running a dynamic DNS under http://seifer14.no-ip.com. How will this affect my setup?
NOTE: The above URL may not work, as its not running 24/7.
Any help would be highly appreciated.
Cheers
Mick Koch |
|
Back to top |
|
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Wed May 12, 2004 6:13 am Post subject: |
|
|
No, it doesn't work.
10:00PM -0800 (PST) _________________ Bienvenidos! |
|
Back to top |
 |
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Thu May 13, 2004 3:52 am Post subject: What doesnt work? |
|
|
What doesnt work, the link, or Workgroup Mail. The link works, when i have my server running, but i cant have my laptop going 24/7, so its only on periodically, but everything does work. Im just a little unsure how to configure workgroup mail to work with my mail system. My scripts all work, and run, but the email does not get sent to the user. Any ideas why?
Cheers
Mick Koch |
|
Back to top |
|
 |
jtwolf76 -
Joined: 07 May 2004 Posts: 2
|
Posted: Fri May 14, 2004 6:47 pm Post subject: workgroupmail |
|
|
I was just wandering if you have any luck with workgroupmail I am trying to get it to work but I keep getting
Microsoft VBScript runtime error- Error '800a000d'
Type mismatch: '[string: ""]'
C:\Program Files\WorkgroupMail\Data\WebMail\default.asp, line 494 |
|
Back to top |
|
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Sun May 16, 2004 8:10 am Post subject: Nope! |
|
|
G'Day Jtwolf76,
Nope i have had no luck. I cant send emails using my webpage, so i really have no idea how to configure it. I have had no help from anyone on this forum, so really cant help u out. Sorry mate. I will try to figure something out, and if i do, i will certainly help you out.
Cheers |
|
Back to top |
|
 |
aprelium -
Joined: 22 Mar 2002 Posts: 6800
|
|
Back to top |
|
 |
jtwolf76 -
Joined: 07 May 2004 Posts: 2
|
Posted: Mon May 17, 2004 2:46 pm Post subject: thanks |
|
|
I will keep looking and let you know what i come up with |
|
Back to top |
|
 |
GagnierA -
Joined: 18 May 2004 Posts: 71 Location: Windsor, Ontario, Canada
|
Posted: Tue May 18, 2004 12:21 pm Post subject: |
|
|
Have you considered implementing some ASP in your website and maybe using the CDONTS library? That's what I use for sending out automatic emails to my users and it has never failed me :)
When you install ASP, they have a great example available to help get you running with it...and you don't need any extra server software running to send messages out. It doesn't take long to write up your own custom application with it to your liking ;)
P.S. Maybe this is a stupid question, but why would you want to host a website from a laptop? ...unless it's for school or something... B) |
|
Back to top |
|
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Wed May 19, 2004 12:22 am Post subject: Still Ain't Workin |
|
|
G'Day Everyone,
GagnierA, i dont host the website from my laptop. Im simply building the website form my laptop, as i dont have a server computer at the moment. Once i do have one, i will transfer my website. Also, my laptop is used as a testing facility, and also because i need to transfer all my work with me, as i do not work at home 5 days of the week, so its convinient for me. But yep, i do have a computer now, so i will be hosting very shortly.
About the server and my problems, thanks for the link aprelium. I dont think there is a problem with my code, as my page loads successfully, but i will give a copy of the script on this forum thread. I just need guidance on the right way to setup a working mail server, just to i can be sure that when an email is generated, it is getting to the right destination, and at the moment i have not seen anything like that. I am still trying to work with Workgroup Mail, but i am having troubles with it. Can anyone suggest anything different, and if so, do they have a guide to help installing and running the mail/smtp server succesfully?
One of the problems i think i may have is i dont have a MX for my domain name (seifer14.no-ip.com). Will this affect my setup in anyway? It certainly does for the Mailenable Mail Server, as i have to buy an MX from no-ip.com, which i really dont want to do. Is there anyway to get around this, or get a free MX that will allow my mail servers to work, or can i use a mail server which does not need an MX?
-------------------------------------------------------------------------------------
Here is the script:
<?php
include $_SERVER['DOCUMENT_ROOT'].'/layout.php';
switch($_REQUEST['req']){
case "process":
myheader(" ");
// Validate all required fields were posted
if(!$_POST['first_name'] ||
!$_POST['last_name'] ||
!$_POST['email_address'] ||
!$_POST['email_address2'] ||
!$_POST['username'] ||
!$_POST['password'] ||
!$_POST['password2'] ||
!$_POST['bio'])
{
$error = true;
$errors .= "<strong>Form Input Errors:".
"<strong>\n\n";
if(!$_POST['first_name']){
$errors .= "Missing First Name\n";
}
if(!$_POST['last_name']){
$errors .= "Missing Last Name\n";
}
if(!$_POST['email_address']){
$errors .= "Missing Email Address\n";
$email_error = true;
}
if(!$_POST['email_address2']){
$errors .= "Missing Email Address".
" Verification\n";
$email_error = true;
}
if(!$_POST['username']){
$errors .= "Missing Username\n";
}
if(!$_POST['password']){
$errors .= "Missing Password\n";
$password_error = true;
}
if(!$_POST['password2']){
$errors .= "Missing Password Verification\n";
$password_error = true;
}
if(!$_POST['bio']){
$errors .= "Missing Information About ".
"Yourself\n";
}
}
//If both emails were posted, validate they match
if($email_error == false)
{
if($_POST['email_address'] !=
$_POST['email_address2']){
$error = true;
$errors .= "Email addresses do not match!\n\n";
$email_error = true;
}
}
// If both passwords were posted, validate they match
if($password_error == false)
{
if($_POST['password'] != $_POST['password2']){
$error = true;
$errors .= "Passwords do not match!\n\n";
$password_error = true;
}
}
if($email_error == false)
{
// Verify if email address has been used already.
$ecount = mysql_result(mysql_query("SELECT COUNT(*)
AS ecount FROM members
WHERE email_address =
'{$_POST['email_address']}'"),0);
// If email exists, generate error and message.
if($ecount > 0)
{
$error = true;
$errors .= "This email address has already ".
"been used ".
"please choose another.\n\n";
}
}
// Verify if username already exists.
$ucount = mysql_result(mysql_query("SELECT COUNT(*)
AS ucount FROM members
WHERE username =
'{$_POST['username']}'"),0);
// If username exists, generate error and message.
if($ucount > 0)
{
$error = true;
$errors .= "Username already exists, ".
"please choose another.\n\n";
}
// If $error is TRUE, then include the signup form
// and display the errors we found.
if($error == true)
{
$errors = nl2br($errors);
include $_SERVER['DOCUMENT_ROOT'].
'/html/forms/membership_signup.html';
footer();
exit();
}
// All checks have passed, insert user in database
$sql = @mysql_query("INSERT INTO members (first_name,
last_name, email_address, signup_date,
bio, username, password)
VALUES ('$_POST[first_name]',
'$_POST[last_name]',
'$_POST[email_address]',
now(),
'$_POST[bio]',
'$_POST[username]',
'".md5($_POST[password])."')
");
if(!$sql){
echo "Error inserting your information into MySQL: ".mysql_error();
footer();
exit();
}
$userid = mysql_insert_id();
$verify_url = "http://".$_SERVER['SERVER_NAME'].
"/join.php?req=verify&id=$userid&vcode=".
md5($_POST['first_name']);
$mailer = &new Email;
// Email User
$mailer->ToMail = $_POST['email_address'];
$mailer->FromMail = "register@amethyststudios.com";
$mailer->FromName = "My PHP Site Administrator";
$mailer->Subject = "Your Membership at My PHP Site";
$mailer->Message = "Dear $_POST[first_name],\n".
"Thanks for joining our website! We".
"welcome you and look forward to".
"your participation.\n\n".
"Below you will find the ".
"information required to ".
"Login to our website!\n\n".
"First, you will need to verify".
" your email address ".
"by clicking on this ".
"hyperlink:\n$verify_url\nand ".
"following the directions in your ".
"web browser.\n\n".
"=====================\n".
"Username: $_POST[username]\n".
"Password: $_POST[password]\n".
"UserID: $userid\n".
"Email Address: ".
"$_POST[email_address]\n".
"=====================\n\n".
"Thank you,\n".
"My PHP Site Administrator\n".
"http://$_SERVER[SERVER_NAME]\n";
$mailer->SendMail();
// Email Admin
$mailer->ToMail = "register@amethyststudios.com";
$mailer->FromMail = "register@amethyststudios.com";
$mailer->FromName = "My PHP Site Administrator";
$mailer->Subject = "New Member at My PHP Site [$userid]";
$mailer->Message = "Hi,\n\n".
"A new member has just signed up ".
"at My PHP Site! Here's their ".
" information:\n\n".
"=====================\n".
"First Name: $_POST[first_name]\n".
"Last Name: $_POST[last_name]\n".
"Email Address: ".
"$_POST[email_address]\n".
"UserID: $userid\n".
"=====================\n\n".
"Thankyou,\n".
"My PHP Site Administrator\n".
"http://$_SERVER[SERVER_NAME]\n";
$mailer->SendMail();
// Display Success Message
echo '<p align="center"><font size="4" '.
'face="Verdana, Arial, Helvetica, sans-serif">'.
'<strong>Your Signup was Successful!'.
'</strong></font></p>'.
'<p align="center"><font size="4" '.
'face="Verdana, Arial, Helvetica, sans-serif">'.
'Please check your mail for instructions.'.
'</font</p>';
//That's it! Done!
break;
case "verify":
myheader("Verify Information");
// Perform MySQL Query:
$sql = mysql_result(mysql_query("SELECT COUNT(*)
AS vcount FROM members WHERE
id='{$_GET['id']}' AND
md5(first_name) = '{$_GET['vcode']}'
"),0);
if($sql == 1){
$update = mysql_query("UPDATE members SET
verified='1' WHERE
id='{$_GET['id']}'");
if(!$update){
echo "Error with MySQL Query: ".mysql_error();
} else {
echo '<p align="center"><font size="4" '.
'face="Verdana, Arial, Helvetica, sans-serif">'.
'<strong>You Have Been Verified!'.
'</strong></font></p>';
include $_SERVER['DOCUMENT_ROOT'].
'/html/forms/login_form.html';
}
} else {
echo "Sorry, Could not be verified!";
}
footer();
break;
default:
myheader(" ");
include $_SERVER['DOCUMENT_ROOT'].
'/html/forms/membership_signup.html';
footer();
break;
}
?>
-------------------------------------------------------------------------------------
Cheers everyone.
Mick Koch |
|
Back to top |
|
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Wed May 19, 2004 7:56 am Post subject: Screen Shots and Update |
|
|
G'Day everyone,
Just to add on to my last post. I have successfully setup the WorkGroupMail Mail server to send emails to people, but cannot receive any mail. Im not sure if my POP3 settins are correct or not, so here are a few screenshots of how i have set things up. Also, nothing works when i try to end the email from my website (as per my script above), so im not sure if there is something wrong with my script or not. Any help would be very appreciated, on whats wrong with my script, and why i cant receive mail from WorkGroupMail.
-------------------------------------------------------------------------------------
(1) Server Setup For Mail Program
-------------------------------------------------------------------------------------
(2) WorkGroupMail Admin Window
-------------------------------------------------------------------------------------
(3) Domain Settings
-------------------------------------------------------------------------------------
(4) WorkGroupMail Server Window
-------------------------------------------------------------------------------------
(5) Group Settings
-------------------------------------------------------------------------------------
(6) User Settings
-------------------------------------------------------------------------------------
Cheers Everyone.
Mick Koch |
|
Back to top |
|
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Wed May 19, 2004 11:56 pm Post subject: |
|
|
Usually, people cannot receive due to DNS issues. Make sure you have an MX record set up with No-IP to send mail to your domain correctly, and make sure that you have port 110 open on your router and/or firewall. _________________ Bienvenidos! |
|
Back to top |
 |
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Thu May 20, 2004 12:24 am Post subject: So i need an MX Record |
|
|
Ok, so i definetly need to purchase an MX Record from no-ip? There is no way to get an MX record free? Not that im cheap or anything. :D I will purchase an MX record if its going to fix my problem. So, why can i send mail via SMTP without the MX record, but i cant receive mail via POP3 without the MX record? Are the configurations i showed in the screenshots correct, and is the script i left on the forum correct?
Also, im not using router hardware, but i do have Norton Personal Firewall. How do i open port 110 on Norton Personal Firewall?
Cheers
Mick Koch |
|
Back to top |
|
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Thu May 20, 2004 12:59 am Post subject: |
|
|
Ok, so an MX record isn't required, but it helps. The reason is, when people send, they resolve your domain after the @ sign, being http://seifer14.no-ip.com. If the domain doesn't get resolved to the IP address when sending mail, it won't work.
Configure "Personal Firewall" and set a rule to allow all traffic, incoming and outgoing, on TCP Port 110. _________________ Bienvenidos! |
|
Back to top |
 |
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Thu May 20, 2004 4:19 am Post subject: Got the Mail Server Working |
|
|
G'Day Everyone,
Well, im making steady progress with the mail server. I configured my Norton Personal Firewall successfully, and am having mixed results. I was able to send and receive a message to myself from my local computer, but when i used a different computer from a hotmail account, i could not receive the email. Any ideas why? Again, im still using the DNS seifer14.no-ip.com, i dont have an MX Record, and the email i am trying to send too is register@amethyststudios.com. All the settings as per the above screenshots are the same. The only thing changed is the Firewall configuration. Would love some help on this one. :)
The other thing that STILL isnt working is the above script, when the user registers their details, all the details are sent successfully to the database, but the email function is still not working, that is, emails to confirm their registration are still not being sent. Any ideas why? Whats wrong with my email block of code? I will try some other things, but this code written is straight out of a php textbook, so one would assume it is correct, maybe not. :( Any help would be greatly appreciated.
Cheers
Mick Koch |
|
Back to top |
|
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Thu May 20, 2004 6:21 am Post subject: |
|
|
I sent you an email. Tell me if you get it. _________________ Bienvenidos! |
|
Back to top |
 |
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Thu May 20, 2004 12:36 pm Post subject: No, didnt Get It |
|
|
No i did not get your email iNaMimAtE. I would have been offline when you sent it, and seeing as though i dont have a MX Backup from no-ip, i dont believe it woudl work. I know that i cant receive emails from services such as hotmail, either from my local computer or from another computer. So, whats the deal? Do i need an MX Record to receive emails from the net such as Hotmail or other webmail services? As i said, my settings as per the above screenshots are still the same, so, whats the deal?
Thanks everyone for helping us out, i definetly do appreciate it, and im looking to getting this working.
Cheers
Mick Koch |
|
Back to top |
|
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Fri May 21, 2004 12:33 am Post subject: |
|
|
No, an MX record will not stop you from receiving email (as I don't use one, and I have had no problems). I would look at everything in between you and hotmail (or some third-party email sever), and as yourself, "Is there anything here that is blocking me from receiving email?"
There is also a possibility that your ISP blocks port 110--although I doubt it. If you want, though, you can change the port and see if it works. _________________ Bienvenidos! |
|
Back to top |
 |
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Fri May 21, 2004 12:51 am Post subject: Hmm, ok |
|
|
Hmm, ok, so given all my settings, it should work then? I will try changing the port numbers. Which port should i change 2? Does it matter? Its funny that i can send an email too myself from within the mail program, but when i use hotmail, i cant receive anything. Any ideas how that would come about?
I will try to change port numbers and get back to you.
Cheers
Mick Koch |
|
Back to top |
|
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Fri May 21, 2004 1:00 am Post subject: |
|
|
You can send email to yourself, because everything is local. The email never leaves the computer.
I would change the port to something simple, such as 111. _________________ Bienvenidos! |
|
Back to top |
 |
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Fri May 21, 2004 1:18 am Post subject: No Success |
|
|
I tried it on port 111 and 112, with no success. Exactly the same thing, i can send, but cant receive anything. Any more ideas, because i really have no idea. I will try more ports and see what happens, but, yeah, not sure. |
|
Back to top |
|
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Fri May 21, 2004 1:36 am Post subject: |
|
|
Well when you change the port, do you update your firewall configuration? _________________ Bienvenidos! |
|
Back to top |
 |
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Fri May 21, 2004 1:52 am Post subject: Yep |
|
|
Yes, always.
I am going though the FAQs from Workgroup Mail, and i have attempted to ping my IP Address (seifer14.no-ip.com), and all four of the packets i send are lost. I reckon this could be a proble, so how do i rectify this?
Mick Koch |
|
Back to top |
|
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Fri May 21, 2004 6:08 am Post subject: |
|
|
Well sometimes ICMP Echo (ping) requests are automatically dropped due to blocking along the way (as TRUSTpunk and I were attempting to make happen). The packets could be dropping because your firewall or something is blocking them. _________________ Bienvenidos! |
|
Back to top |
 |
 |
Anonymoose -
Joined: 09 Sep 2003 Posts: 2192
|
Posted: Fri May 21, 2004 7:59 am Post subject: |
|
|
iNaNimAtE wrote: | Usually, people cannot receive due to DNS issues. Make sure you have an MX record set up with No-IP to send mail to your domain correctly, and make sure that you have port 110 open on your router and/or firewall. |
Receiving mail from other servers requires port 25 open and unblocked by an ISP. Similarly, sending out mail requires port 25 open - many ISPs have blocked this in the wake of the recent email worm plague. Blocking port 25 access to anything but their own server prevents the worms SMTP engines from working as effectively.
You need to test whether you can contact mail servers other than your own ISPs on port 25, or whether any attempt to send out mail directly fails.
Port 110 is only required for you to collect your mail from your own server - it doesn't need to be accessible from the internet for you to be receiving mail if all you want to do is pick it up on your LAN or PC. |
|
Back to top |
|
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Fri May 21, 2004 10:15 am Post subject: How To Test Port 25? |
|
|
Thanks Anonymoose, so how do i test port 25? Should i allow my firewall to let those connections on port 25 though, or is that a security issue? |
|
Back to top |
|
 |
Anonymoose -
Joined: 09 Sep 2003 Posts: 2192
|
Posted: Fri May 21, 2004 1:42 pm Post subject: |
|
|
You need to allow incoming/outgoing traffic on port 25, but make sure your mail server has any relaying options disabled or strictly controlled before you do. If you leave an open relay you will find very rapidly that you have been spotted by relay hunting spambots and are sending out 1000's of mails an hour :S
Assuming you're not with Comcast, try this :
-> start -> run -> cmd
-> telnet smtp.comcast.net 25
If you have allowed Telnet outgoing access and your connection to the Comcast mail server fails, port 25 is probably blocked by your ISP.
See here for more details of why port 25 may be blocked :
https://panel.dreamhost.com/kbase/index.cgi?area=1623
If you cannot use port 25 for sending mail directly, you will have to find a way to configure your server to send via your ISPs servers. |
|
Back to top |
|
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Thu May 27, 2004 3:12 am Post subject: GOT IT WORKING!!! :D |
|
|
G'Day Everyone,
Im happy to report that i FINALLY got the Workgroup Mail server working, and im not able to send and receive mail successfully. I had a few little problems in my setups, but i was able to rectify them. Thanks to everyone who helped us out. The only problem im still having involves the mailing function in my script, which has been posted earlier in this thread. Anything noticably wrong with my script?
Cheers
Mick Koch |
|
Back to top |
|
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Thu May 27, 2004 5:48 am Post subject: Re: GOT IT WORKING!!! :D |
|
|
mjjk91 wrote: | and im not able to send and receive mail successfully |
Was that a mistake?
I looked all over in your script, and I found nowhere where it used an SMTP server for emailing. In that case, you need to configure php.ini to send mail properly. Use "localhost" as the SMTP server address. _________________ Bienvenidos! |
|
Back to top |
 |
 |
mjjk91 -
Joined: 03 Feb 2004 Posts: 75 Location: Australia
|
Posted: Fri May 28, 2004 1:08 pm Post subject: Question |
|
|
G'Day,
Sorry, that was an error from myself, i meant to say i am able to send and receive mail successfully.
iNaMimAtE, so is there anything wrong with my code above? Do i need to change the mail section in my code to code that will allow me to send an email to my own server and to the user registering, or can i use the existing code in my script, and simple modify the php.ini file?
If i need to modify my code, can anyone suggest a url that helps in writing mail-sending code?
Cheers
Mick Koch |
|
Back to top |
|
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Fri May 28, 2004 10:16 pm Post subject: |
|
|
I looked on the PHP.NET website (http://www.php.net/function.mail), and am I correct in saying that "$mail" is an environment variable? In that case, it normally uses the UNIX "sendmail" to deliver your email--which you can't use.
In your php.ini file, check down on line 608:
Quote: | [mail function]
; For Win32 only.
SMTP = localhost
; For Win32 only.
sendmail_from = register@amethyststudios.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = |
That's how it should be. _________________ Bienvenidos! |
|
Back to top |
 |
 |
hubson -
Joined: 10 May 2004 Posts: 94 Location: Coventry
|
Posted: Mon May 31, 2004 11:24 am Post subject: |
|
|
I still have this problem when I do this:
Failed sending email :: PHP ::
DEBUG MODE
Line : 234
File : C:\Program Files\Abyss Web Server\htdocs\tyrone\tyrone_forum\includes\emailer.php |
|
Back to top |
 |
 |
iNaNimAtE -
Joined: 05 Nov 2003 Posts: 2381 Location: Everywhere you're not.
|
Posted: Tue Jun 01, 2004 4:24 am Post subject: |
|
|
Is PHP configured properly? Do you have an SMTP server set up? Is the email address correct? Does the script still think of using the Unix Sendmail? _________________ Bienvenidos! |
|
Back to top |
 |
 |
|