【问题标题】:Signing PHP emails on shared hosting在共享主机上签署 PHP 电子邮件
【发布时间】:2013-03-12 03:51:08
【问题描述】:

我使用的是共享主机计划,当我使用 PHP 发送电子邮件时,电子邮件客户端(例如 Gmail)会在我的 from 字段中添加一点 via 位,其中包含我主机的域。

所以不是我的电子邮件只是来自我的域:

From: me@mydomain.com

它来自两个域:

From: me@mydomain.com via host13.myhost.com

显然,这会让接收电子邮件的人感到困惑,而且品牌形象不佳。由于我使用的是共享主机计划,我认为我无法访问 PHP 的配置设置或它用于邮件的任何内容。我是否可以对我的 PHP 电子邮件进行数字签名,或者这在共享主机上是不可能的?

这是我现在正在做的事情:

$header = "From: me@mydomain.com";
mail("you@yourdomain.com", "subject", "body", $header);

【问题讨论】:

  • 通过 SMTP 使用 php mailer
  • 您应该包含用于发送邮件的代码。我会说通过第三方发送,比如 Gmail 本身,而不是像你可能使用的那样使用 mail()。你也可以看看SwitfMailer
  • 如果你能省钱,你可以看看Amazon SES之类的服务;他们负责签名、可靠的交付和反馈循环(针对退回和投诉)。

标签: digital-signature php dkim spf


【解决方案1】:

你可以试试这个,你需要从Here下载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   = "example@gmail.com";  // 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!
    }
    ?>

【讨论】:

    【解决方案2】:

    默认邮件功能取决于您的服务器设置,并且在收件人看来很少像普通邮件。您应该使用SwitfMailerpear MAIL 库,它可以通过您自己的邮件服务器通过SMTP 发送邮件。您可以使用您的普通电子邮件帐户或为您的网络服务设置一个新帐户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 2017-05-23
      • 1970-01-01
      相关资源
      最近更新 更多