Как отправить письмо, используя скрипт php? - PullRequest
1 голос
/ 12 сентября 2011
<?php
    require_once "Mail.php";
    $from = "<niko@gmail.com>";
    $to = "<niko@hotmail.com>";
    $subject = "Hi!";
    $body = "Hi,\n\nHow are you?";
    $host = "ssl://smtp.gmail.com";
    $port = "465";
    $username = "<niko@gmail.com>";
    $password = "somepassworrd";
    $headers = array ('From' => $from,'To' => $to,'Subject' => $subject);
    $smtp = Mail::factory('smtp', array ('host' => $host,'port' => $port,'auth' =>true,
    'username' => $username,
    'password' => $password));
     $mail = $smtp->send($to, $headers, $body);
     if (PEAR::isError($mail)) 
      echo("<p>" . $mail->getMessage() . "</p>");
     else
      echo("<p>Message successfully sent!</p>");
?> 

Когда я пытаюсь выполнить эти php-скрипты, я получаю эти ошибки

  FATAL ERROR Class Mail NOT found ON number line 18

Я знаю, что вышеупомянутый вопрос возможно дублировать эти

Отправка электронной почты с использованием SMTP-сервера GMail со страницы PHP

Но это не работает. Моя версия PHP 5.3.4 версия Xampp 1.7.4.

 mail('caffeinated@example.com', 'My Subject', $message); \\ I tried these

Но это показывает предупреждение о том, что пропущены заголовки.

  1. Как отправить электронное письмо, используя скрипт php?

  2. Можем ли мы отправить электронное письмо без аутентификации в PHP? Потому что vb.net использует аутентификацию сервера, но большая часть кода, который я нашел в Google, не имеет аутентификации для php. поэтому я получил сомнение

Наконец, пожалуйста, помогите мне с этими попытками в течение 2 часов или около того!

1 Ответ

2 голосов
/ 12 сентября 2011

Функция PHP mail () предназначена для отправки почты через Sendmail. Если вы хотите использовать какой-нибудь SMTP-сервер, вы можете использовать Zend_Mail, что делает эту вещь очень простой: http://framework.zend.com/manual/en/zend.mail.html

Используя Zend_Mail, вам нужно всего лишь написать что-то вроде этого:

$config = array('auth' => 'login',
            'username' => 'myusername',
            'password' => 'password');

$transport = new Zend_Mail_Transport_Smtp('mail.server.com', $config);

$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->setFrom('sender@test.com', 'Some Sender');
$mail->addTo('recipient@test.com', 'Some Recipient');
$mail->setSubject('TestSubject');
$mail->send($transport);

Вышеуказанное обрабатывает аутентификацию для вас и отправляет письмо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...