2013-09-25 3 views
1

Мне интересно, можно ли отправить электронное письмо с локального хоста? Я пробовал что-то, но это не сработало, и я подумал, что, возможно, он не будет работать в локальном хосте. Вот код:Email Sending Localhost

  // Send the email: 
      $message = " To activate your account, please click on this link:\n\n"; 
      $message .= WEBSITE_URL . '/activate.php?email=' . urlencode($Email) . "&key=$activation"; 
      mail($Email, 'Registration Confirmation', $message, 'From: [email protected]'); 

      // Flush the buffered output. 


      // Finish the page: 
      echo '<div class="success">Thank you forregistering! A confirmation email has been sent to '.$Email.' Please click on the Activation Link to Activate your account </div>'; 

А вот соединение:

 /*Define constant to connect to database */ 
     DEFINE('DATABASE_USER', 'root'); 
     DEFINE('DATABASE_PASSWORD', 'buena'); 
     DEFINE('DATABASE_HOST', 'localhost'); 
     DEFINE('DATABASE_NAME', 'forum'); 
     /*Default time zone ,to be able to send mail */ 
     date_default_timezone_set('UTC'); 

     /*You might not need this */ 
     ini_set('SMTP', "mail.myt.mu"); // Overide The Default Php.ini settings for sending mail 


     //This is the address that will appear coming from (Sender) 
     define('EMAIL', '[email protected]'); 

     /*Define the root url where the script will be found such as http://website.com or http://website.com/Folder/ */ 
     DEFINE('WEBSITE_URL', 'http://localhost'); 


     // Make the connection: 
     $dbc = @mysqli_connect(DATABASE_HOST, DATABASE_USER, DATABASE_PASSWORD, 
DATABASE_NAME); 

     if (!$dbc) { 
trigger_error('Could not connect to MySQL: ' . mysqli_connect_error()); 
     } 

Есть ли что-нибудь не так? Или отсутствует?

+4

Он будет работать нормально на локальном хосте, но для этого вам нужен сервер smtp. – andrewsi

+0

О, это так. Я не знаком с этим. Но я сделаю некоторые исследования. Спасибо за подсказку :) –

ответ

1

Ваш код в порядке, проблема в механизме, с помощью которого PHP отправляет электронное письмо. В окнах нет готового решения для функции mail() PHP, чтобы использовать для отправки контраста электронной почты в * системы NIX, которые поставляются с главным образом sendmail.

В любом случае в Windows можно реализовать такой механизм, чтобы функция почты() работала без сбоев. Как бы это было не так, я не буду заниматься тем, как это сделать здесь. Пожалуйста, обратитесь к this clear step-by-step post, и вы скоро начнете работать.

0

Для использования PHP-почты вам понадобится SMTP-сервер. Для того чтобы функции почты были доступны, PHP требует установленной и рабочей системы электронной почты. Используемая программа определяется настройками конфигурации в файле php.ini. PHP обычно упаковывается с почтовым пакетом PEAR. Найдите этот сайт для PEAR Mail. За тонны информации об этом.

+0

я нашел ответ на вопрос, касающийся шахты и сказал редактировать sendmail.ini с этим: '[Sendmail] smtp_server = smtp.gmail.com smtp_port = 587 error_logfile = error.log debug_logfile = debug.log [email protected] auth_password = мой-Gmail-пароль force_sender = мой-Gmail-идентификатор @ gmail.com' Будет ли это работать если я изменю значение моего предпочтительного адреса электронной почты? –

+0

@AnneBuena PEAR почта, вероятно, лучший способ пойти. Он упакован с PHP и им не уверен, что gmail позволит вам передать, если это не учетная запись gmail. – user2162192

1

Для отправки электронной почты с localhost вам нужен SMTP-сервер на вашем локальном компьютере. Который, я думаю, не нужен, потому что есть небольшая программа, которая слушает сообщения электронной почты, отправленные с localhost, ловит их и открывает их в вашем почтовом клиенте по умолчанию.

Here is a link

Я сильно recomand этой программы. Я также использую его, и он бесплатный :)

+1

Спасибо, Бениамин, ты действительно спас мой день. :) –