Подписание электронных писем PHP на виртуальном хостинге

У меня тарифный план общего хостинга, и когда я отправляю электронные письма с помощью PHP, почтовые клиенты (например, Gmail) добавит немного via к моему полю from с доменом моего хоста.

Поэтому вместо того, чтобы мои электронные письма были только из моего домена:

From: [email protected]

Это из двух доменов:

From: [email protected] via host13.myhost.com

Очевидно, что это сбивает с толку людей, получающих электронную почту, и является плохим брендингом. Поскольку я пользуюсь планом общего хостинга, я не думаю, что у меня будет доступ к настройкам конфигурации PHP или тому, что он использует для почты. Могу ли я подписывать электронные письма PHP цифровой подписью, или это невозможно на виртуальном хостинге?

Вот что я делаю сейчас:

$header = "From: [email protected]";
mail("[email protected]", "subject", "body", $header);

person brentonstrine    schedule 12.03.2013    source источник
comment
используйте php mailer через ваш SMTP   -  person mkungla    schedule 12.03.2013
comment
Вы должны включить код, который вы используете для отправки почты. Я бы сказал, отправляйте через третье лицо, например через Gmail, а не используйте mail(), как это может показаться вам. Вы также можете посмотреть на SwitfMailer.   -  person Jared Farrish    schedule 12.03.2013
comment
Если вы можете сэкономить деньги, вы можете посмотреть на такие сервисы, как Amazon SES; они заботятся о подписи, надежной доставке и циклах обратной связи (отказов и жалоб).   -  person Ja͢ck    schedule 12.03.2013


Ответы (2)


Вы можете попробовать это, вам нужно загрузить класс PHP Mailer из здесь и ваш код будет таким:

 <?php
include "PHP MAILER CLASS";
    $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
    $mail->IsSMTP(); // telling the class to use SMTP
    try {
        //$mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
        $mail->SMTPAuth   = true;                  // enable SMTP authentication
        $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
        $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
        $mail->Port       = 465;                   // set the SMTP port for the GMAIL server
        $mail->Username   = "[email protected]";  // GMAIL username
        $mail->Password   = "password";            // GMAIL password
        $mail->AddAddress("Reciever Email", "Reciever Name");
        $mail->SetFrom('Sender Email', 'Sender Name');
        $mail->Subject = "Subject";
        $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
        $mail->MsgHTML("Message Body");
        $mail->Send();
    } catch (phpmailerException $e) {
        $e->errorMessage(); //Pretty error messages from PHPMailer
    } catch (Exception $e) {
        $e->getMessage(); //Boring error messages from anything else!
    }
    ?>
person Kabir    schedule 12.03.2013

Почтовая функция по умолчанию зависит от настройки вашего сервера и редко выглядит как обычная почта для получателя. Вы должны использовать библиотеку либо SwitfMailer, либо pear MAIL, который может отправлять почту через ваш собственный почтовый сервер через SMTP. Вы можете использовать свою обычную учетную запись электронной почты или настроить новую для своего веб-сервиса.

person Bryan Waters    schedule 12.03.2013