Я написал письмо в формате HTML, и до сих пор все работало. Я планировал отправить его с помощью PHP (используя функцию mail ();). Однако, когда я сделал это, почта не пришла на учетные записи hotmail и gmail. Я немного погуглил, и люди предложили использовать PHPmailer.
Я скачал PHPmailer и установил его на свой сервер. Все идет нормально. Но теперь у меня есть следующий код:
<?php
set_include_path('.:c:\domains\mydomain\wwwroot\phpmailer\phpmailer.inc.php');
set_include_path('.:c:\domains\mydomain\wwwroot\phpmailer\smtp.inc.php');
require("phpmailer.inc.php");
$mail = new PHPMailer();
$mail->IsHTML(true);
$mail->From = "from@example.com";
$mail->AddAddress("mymail@mydomain.com");
$mail->Subject = "An HTML Message";
$mail->Body = "Hello, <b>my friend</b>! \n\n This message uses HTML entities!";
if($mail->Send()) {
echo 'Message is sent';
} else {
echo 'Message was not sent..';
echo 'Mailer error: ' . $mail->ErrorInfo;
}
?>
У меня есть несколько проблем:
- В выводе сообщается, что электронное письмо не отправлено, но оно есть.
- Я получаю два предмета
- Если я добавлю больше html (например, таблицы), он все равно будет отклонен hotmail (и, вероятно, тоже gmail).
Кроме того, я увидел, что есть функция SMTP. Как использовать эту функцию? Нужно ли мне записывать свой собственный SMTP?
Был бы очень рад, если бы кто-нибудь мог мне помочь!
редактирование:
class SMTP {
var $SMTP_PORT = 25; # the default SMTP PORT
var $CRLF = "\r\n"; # CRLF pair
var $smtp_conn; # the socket to the server
var $error; # error if any on the last call
var $helo_rply; # the reply the server sent to us for HELO
var $do_debug; # the level of debug to perform
/*
* SMTP()
*
* Initialize the class so that the data is in a known state.
*/
function SMTP() {
$this->smtp_conn = 0;
$this->error = null;
$this->helo_rply = null;
$this->do_debug = 0;
}