【问题标题】:How to use my customers' email sending their email as the "Sender"如何使用我的客户的电子邮件作为“发件人”发送他们的电子邮件
【发布时间】:2016-02-19 22:03:51
【问题描述】:

我曾经使用“Php mailer”通过用户的电子邮件和密码从他们在我的应用程序中的地址发送来进行身份验证,但这很不方便。

所以我想做一些类似“Mailchimp”的事情。 Mailchimp 允许用户设置他们的电子邮件,然后 Mailchimp 只使用用户的电子邮件作为“发件人”。

请任何人帮助我解决这个电子邮件问题。

【问题讨论】:

  • 不清楚您目前使用的是Mailchimp,还是只是举例说明他们拥有的功能并且您想模仿。
  • 如果您尝试伪造他们的电子邮件地址,根据设置,您的邮件将被标记为垃圾邮件或完全退回。您真的应该采用不同的方式发送电子邮件。
  • 除非您的服务器通过您要用作发件人的地址的域 SPF 记录明确授权发送电子邮件,否则请勿执行此操作。否则您会以垃圾邮件告终,并可能将您的服务器列入黑名单。

标签: php email email-client


【解决方案1】:

你不能。 MailChimp 要求您通过 DNS 设置验证自己是电子邮件地址和域的所有者。 See more details

【讨论】:

    【解决方案2】:

    您需要做的是首先验证用户的电子邮件地址是否正确。这是一个很好的演练,展示了如何做到这一点:

    http://code.tutsplus.com/tutorials/how-to-implement-email-verification-for-new-members--net-3824

    您还需要一份免责声明,以证明他们已允许您代表他们发送电子邮件。

     Disclaimer: by enrolling for this service you are granting this 
     app permission to send emails on your behalf.
    

    接下来,您需要创建一个仅属于您的应用的功能电子邮件帐户。例如:

     clientmailer@myapp.com
    

    然后,最后但并非最不重要 - 继续使用 PHPMailer,但使用方式不同。从您的应用程序的功能帐户验证和发送电子邮件,但将 AddReplyTo 地址设置为您客户的地址和姓名。例如:

     select email, firstname from client;
     $mail = new PHPMailer();
     $mail->IsSMTP();
     $mail->SMTPAuth   = true;
     $mail->SMTPSecure = 'tsl';
     $mail->SMTPDebug  = 1;
     $mail->Host       = yourhost@myapp.com;
     $mail->Port       = EMAIL_PORT;
     $mail->Username   = clientmailer@myapp.com;
     $mail->Password   = yourpass;
     $mail->SetFrom('clientmailer@myapp.com', 'Functional Mailer');
     $mail->AddReplyTo('(email from select)', '(firstname from select)');
    

    【讨论】:

      猜你喜欢
      • 2010-11-09
      • 2016-08-18
      • 1970-01-01
      • 2010-10-23
      • 2022-01-13
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 2016-09-12
      相关资源
      最近更新 更多