Мне нужно использовать функцию PHP mail()
для отправки почты с локального SMTP (используя Wamp, Xampp или т.д.).
Кто-нибудь может дать учебник?
Мне нужно использовать функцию PHP mail()
для отправки почты с локального SMTP (используя Wamp, Xampp или т.д.).
Кто-нибудь может дать учебник?
Кажется невозможным включить все части в мой пост, вместо этого я укажу на инструкции ::
с использованием HMailServer: fooobar.com/questions/92000/...
используя различные методы: fooobar.com/questions/67496/...
с использованием файлов SendMail: http://blog.techwheels.net/send-email-from-localhost-wamp-server-using-sendmail/
(должен работать на WAMP, XAMPP или что-то еще...)
Вот шаги для достижения этого:
Загрузите sendmail.zip через эту ссылку
Откройте sendmail.ini и настройте конфигурацию следующим образом:
smtp_server = smtp.gmail.com
имя хоста = локальный
Доступ к вашей учетной записи электронной почты. Нажмите на инструмент Gear Tool > Settings > Forwarding и POP/IMAP > IMAP. Нажмите "Включить IMAP", а затем сохраните изменения.
Запустите свой WAMP-сервер. Включить ssl_module в модуле Apache.
Затем включите php_openssl и php_sockets под PHP.
Откройте php.ini и настройте его как коды ниже. В принципе, вам просто нужно установить путь sendmail_.
[mail function] ; For Win32 only. ; http://php.net/smtp ;SMTP = ; http://php.net/smtp-port ;smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = [email protected] ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path sendmail_path = "C:\wamp\sendmail\sendmail.exe -t -i"
Я надеюсь, что это сработает для вас.
Вы можете использовать эту библиотеку для отправки электронной почты, если проблема с локальным xampp, wamp...
class.phpmailer.php, class.smtp.php Напишите этот код в файле, где функция электронной почты вызывает
include('class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsHTML(true);
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = "your email ID";
$mail->Password = "your email password";
$fromname = "From Name in Email";
$To = trim($email,"\r\n");
$tContent = '';
$tContent .="<table width='550px' colspan='2' cellpadding='4'>
<tr><td align='center'><img src='imgpath' width='100' height='100'></td></tr>
<tr><td height='20'> </td></tr>
<tr>
<td>
<table cellspacing='1' cellpadding='1' width='100%' height='100%'>
<tr><td align='center'><h2>YOUR TEXT<h2></td></tr/>
<tr><td> </td></tr>
<tr><td align='center'>Name: ".trim(NAME,"\r\n")."</td></tr>
<tr><td align='center'>ABCD TEXT: ".$abcd."</td></tr>
<tr><td> </td></tr>
</table>
</td>
</tr>
</table>";
$mail->From = "From email";
$mail->FromName = $fromname;
$mail->Subject = "Your Details.";
$mail->Body = $tContent;
$mail->AddAddress($To);
$mail->set('X-Priority', '1'); //Priority 1 = High, 3 = Normal, 5 = low
$mail->Send();
вы можете напрямую отправлять почту из функции php mail(), если вы указали smtp-сервер и smtp-порт в php.ini, сначала спросите SMTP-сервер учетных данных для вашего интернет-провайдера.
SMTP = smtp.wlink.com.np //put your ISP smtp server
smtp_port = 25 // your ISP smtp port.
то просто перезапустите сервер Apache и он начнет работать. ENjoy...
Если кто-либо из вас получает ошибку, как после следующего ответа, указанного Afwe Wef
Warning: mail() [<a href='function.mail'>function.mail</a>]: SMTP server response:
550 The address is not valid. in c:\wamp\www\email.php
Перейдите в php.ini
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]
Введите [email protected] в качестве идентификатора вашего e-mail, который вы использовали для настройки hMailserver перед sendmail_from.
ваша проблема будет решена.
Протестировано на сервере Wamp2.2 (Apache 2.2.22, php 5.3.13) на окнах 8
Если вы также получаете следующую ошибку
"APPLICATION" 6364 "2014-03-24 13:13:33.979" "SMTPDeliverer - Message 2: Relaying to host smtp.gmail.com."
"APPLICATION" 6364 "2014-03-24 13:13:34.415" "SMTPDeliverer - Message 2: Message could not be delivered. Scheduling it for later delivery in 60 minutes."
"APPLICATION" 6364 "2014-03-24 13:13:34.430" "SMTPDeliverer - Message 2: Message delivery thread completed."
Возможно, вы забыли изменить порт с 25 до 465
Я предпочитаю использовать PHPMailer script для отправки электронной почты с localhost, поскольку он позволяет мне использовать мою учетную запись Gmail как SMTP. Вы можете найти PHPMailer из http://phpmailer.worxware.com/. Помощь относительно использования gmail как SMTP или любого другого SMTP можно найти в http://www.mittalpatel.co.in/php_send_mail_from_localhost_using_gmail_smtp. Надеюсь, это поможет!