Как отправить электронную почту на сервер электронной почты? - PullRequest
0 голосов
/ 30 декабря 2018

Я использую библиотеку PHPMailer для отправки электронных писем, я хочу отправлять электронные письма на 3 из моих писем на сервере.

Итак, допустим, есть мои электронные письма: ('info@example.com', 'admin@ example.com ',' help@example.com ').

Я хочу отправить одно и то же письмо на эти 3 письма.

Что я должен ввести для этих параметров в этом случае:

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = '';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->SMTPKeepAlive = true; // SMTP connection will not close after each email sent, reduces SMTP overhead
$mail->Username = '';                 // SMTP username
$mail->Password = '***';                          // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;   

Могу ли я использовать электронную почту другого сервера для отправки электронной почты из трех других писем?

Или мне нужно использовать службу, подобную Gmail?

Вот код:

$recipients = array('help@example.com', 'info@example.com', 'admin@example.com');

$mail = new PHPMailer();                              // Passing `true` enables exceptions

//Server settings
$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = '';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->SMTPKeepAlive = true; // SMTP connection will not close after each email sent, reduces SMTP overhead
$mail->Username = '';                 // SMTP username
$mail->Password = '';                          // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to

//Recipients
$mail->setFrom('', '');
$mail->addReplyTo('', '');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

//Content
$mail->isHTML(true);                                  // Set email format to HTML
$mail->Subject = 'Test';
$mail->Body    = 'Testing';
$mail->AltBody = 'Testing';

foreach ($recipients as $recipient) {

    $mail->addAddress($recipient);

    if (!$mail->send()) {
        echo "Mailer Error (" . str_replace("@", "&#64;", $recipient) . ') ' . $mail->ErrorInfo . '<br />';
        break; //Abandon sending
    } else {
        echo "Message sent to :"  . ' (' . str_replace("@", "&#64;", $recipient) . ')<br />';
    }

    // Clear all addresses for next loop
    $mail->clearAddresses();
}

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

Если вы отправляете со своего собственного сервера на другие ваши адреса, нет необходимости использовать внешнюю почтовую службу - , если ваш провайдер не блокирует исходящий SMTP, но это другой вопрос.Установите почтовый сервер на своем сервере (postfix - это хорошо) - если вы работаете в Debian / Ubuntu, все, что вам нужно - это apt-get install postfix и ответьте на вопросы, которые он вам задаст.

После этого ваши PHP-скриптыможно отправлять через локальный почтовый сервер, поэтому ваш код будет сокращен до:

$mail->isSMTP();
$mail->Host = 'localhost';
$mail->SMTPKeepAlive = true;

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

0 голосов
/ 30 декабря 2018

Вам нужно будет связаться с вашей веб-хостинговой компанией, чтобы предоставить вам конфигурацию IMAP / POP3 вашей электронной почты.если вы используете (пример) example.com, они предоставят вам такую ​​информацию, как mail.smtp.com в качестве хоста, имя пользователя и пароль вашего адреса электронной почты, порт (может быть 587 или любой другой), а также настройки для ssl.

...