Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@Dreyer
Created June 20, 2012 09:06
Show Gist options
  • Star 30 You must be signed in to star a gist
  • Fork 18 You must be signed in to fork a gist
  • Save Dreyer/2958946 to your computer and use it in GitHub Desktop.
Save Dreyer/2958946 to your computer and use it in GitHub Desktop.
Quick & Dirty PHP Mail Test Script
<?php
/*
DONT FORGET TO DELETE THIS SCRIPT WHEN FINISHED!
*/
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
$from = 'webmaster@example.com';
/*
ini_set( 'SMTP', 'smtp.example.com' );
ini_set( 'SMTP_PORT', 25 );
ini_set( 'sendmail_from', $from );
*/
$server = array(
'HTTP_HOST', 'SERVER_NAME', 'SERVER_ADDR', 'SERVER_PORT',
'SERVER_ADMIN', 'SERVER_SIGNATURE', 'SERVER_SOFTWARE',
'REMOTE_ADDR', 'DOCUMENT_ROOT', 'REQUEST_URI',
'SCRIPT_NAME', 'SCRIPT_FILENAME',
);
$to = ( isset( $_GET['email'] ) ? $_GET['email'] : FALSE );
$subject = 'Mail Test Successful for ' . $_SERVER['HTTP_HOST'];
$message = '';
if ( ! $to )
{
echo '<strong>Set $_GET[\'email\'].</strong>';
exit;
};
foreach ( $server as $s )
{
$message .= sprintf( '%s: %s', $s, $_SERVER[$s] ) . PHP_EOL;
};
$headers = 'From: ' . $from . PHP_EOL
. 'Reply-To: ' . $from . PHP_EOL
. 'X-Mailer: PHP/' . phpversion();
if ( isset( $_GET['send'] ) && $_GET['send'] === 'true' )
{
$success = mail( $to, $subject, $message, $headers );
}
else
{
echo '<strong>Set &quot;<a href="./?email=' . $to . '&send=true">'
. './?email=' . $to . '&send=true</a>&quot; to send a test e-mail.</strong>';
};
if ( isset( $success ) )
{
echo 'E-mail sent to: ' . $to;
echo '<br />';
echo 'Successful mail?: <strong ' . ( $success ? 'style="color:green;">YES' : 'style="color:red;">NO' ) . '</strong>';
}
else
{
echo '<br />';
echo 'E-mail set as: '.$to;
};
echo '<hr />';
echo '<style> * { font-family: Helvetica, Arial, sans-serif; } th { text-align: left; } td { padding: 3px 5px; } </style>';
echo '<table>';
foreach ( $server as $s )
{
echo '<tr><th>$_SERVER[\'' . $s . '\']</th><td>' . $_SERVER[$s] . '</td></tr>';
};
echo '</table>';
if ( isset( $success ) )
{
echo '<!--';
var_dump( $success );
echo '-->';
};
?>
@stuarteske
Copy link

Cool script, thank you for sharing.

@erfinestra1977
Copy link

Give me error "Set $_GET['email']." Why? Thank you

@mkot0791
Copy link

I'm also getting this Set $_GET['email'] message. Any idea?

Thanks in advance

@theinhlamaw
Copy link

This script doesn't have HTML form to accept the recipient email address. So you can test this script by passing GET parameters.

http:///yourhost/mail-test.php?email=info@example.com&send=true

@Porrapat
Copy link

Porrapat commented Nov 6, 2015

Thank you. It's very useful.

@Topcoder01
Copy link

Yeah awesome script, I use it like this.

http:///yourhost/mail-test.php?email=mailtest@unlocktheinbox.com&send=true

So the above sends an email to this mail tester and you get a response back with the details of your configuration.

@cybexin
Copy link

cybexin commented Mar 12, 2018

how about enabling SMTP authentication?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment