如何使用客户的电子邮件以“发件人”身份发送电子邮件


How to use my customers' email sending their email as the "Sender"

我曾经使用"Php mailer"使用用户的电子邮件和密码进行身份验证,以从我的应用程序中的地址发送,但这很不方便。

所以我想做一些像"Mailchimp"那样的事情。Mailchimp允许用户设置他们的电子邮件,然后Mailchimp仅使用用户的电子邮件作为"发件人"。

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

你不能。MailChimp 要求您通过 DNS 设置验证自己是电子邮件地址和域的所有者。查看更多详情

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

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)');