【问题标题】:How to create a script that users can specify an email and send a user a pre-defined email?如何创建用户可以指定电子邮件并向用户发送预定义电子邮件的脚本?
【发布时间】:2011-06-30 23:40:27
【问题描述】:

所以,基本上,我正在创建一个用户可以访问的页面,并输入以下信息:
1. 他们的名字
2. 他们的电子邮件
3. 收件人的电子邮件

然后,他们可以发送预定义的电子邮件,内容如下...

“您好,{Recipient's email}。{First name} ({Email}) 刚刚向您发送了一个 slurp!您可以忽略此消息,或者将它们 slurp 返回。
[啜他们回来] [啜别人] [什么是啜食?]”

关于 Slurp 的整个部分并不重要,它只是来自预定义电子邮件的文本。 {...} 中的文本取自页面上的字段,而 [...] 中的文本只是链接。

有谁知道如何做到这一点?即使您无法自定义电子邮件,而且只是没有来自网站的信息,我们将不胜感激。谢谢。!

这是我要做什么的一个例子...... Example Layout

【问题讨论】:

  • 您在问题中使用“电子邮件”一词来表示两个不同的东西(电子邮件地址和电子邮件),这使得它比应有的更令人困惑(尤其是标题)。

标签: php html email forms send


【解决方案1】:

可以使用 php 邮件功能。您可以输入您指定的所有内容,然后使用示例here。他们以基本和更高级的形式展示它。

【讨论】:

    【解决方案2】:

    有趣的是,Head First PHP 的第一章几乎准确地描述了这种情况(除了收件人是固定的)。如果你想了解更多关于 PHP 的知识,你可以看这本书;否则,他们的代码在线http://www.headfirstlabs.com/books/hfphp/(实际代码链接:http://www.headfirstlabs.com/books/hfphp/code/HeadFirstPHPMySQL_code_ch01.zip

    【讨论】:

      【解决方案3】:

      可以使用mail() 命令自行发送电子邮件

      mail('to.address@host.com', 'subject', 'message', 'From: from.address@host.com');
      

      整个代码如下所示:

      HTML:

      <form action="slurping.php" method="post">
          Your name: <input type="text" name="name" /><br />
          Your email: <input type="text" name="email" /><br />
          Recipient: <input type="text" name="recipient" /><br />
          <input type="submit" />
      </form>
      

      PHP (slurp.php):

      // order of parameters is: to, subject, message body, additional headers
      mail(
          $_POST['recipient'], 
          'You just got slurped', 
          'You\'ve been slurped by '.$_POST['name'].'. Slurp him/her back by visiting http://slurp.com/',
          "From: {$_POST['email']}\r\n"
      );
      

      这将向收件人发送一封电子邮件,就像它来自发件人的电子邮件地址一样。

      但是,那里缺少很多东西。您通常想要包含的内容是:

      • 在客户端验证输入 (javascript)
      • 在服务器端验证输入
      • 清除和处理正确的编码等

      但是,如果您想正确执行此操作,以便更大比例的用户实际接收电子邮件,则应使用 3rd 方库来发送电子邮件。我推荐PHP MailerSwift Mailer

      这些库提供了一种简单的机制,让您可以在电子邮件、附件中包含 HTML,允许轻松连接到 SMTP 服务器并为您处理所有转义和编码问题。

      最重要的是,它们将所有内容封装在面向对象的方法中,所以如果这是您的一杯茶,您会很高兴。访问他们的网站了解更多信息。

      这很有趣,我写了一篇关于电子邮件送达率(通过垃圾邮件过滤器)等问题的博客文章:http://arnorhs.com/2011/02/21/delivering-email-with-php/ - 这可能对你有帮助。

      干杯

      【讨论】:

      • 嗯,不,不是完整的代码,但如果你有它,一个链接将不胜感激。我考虑过使用 mail 命令,但那不是只转到页面本身指定的地址吗?我的目标是让页面访问者能够在文本字段中输入电子邮件,并将预定义的电子邮件发送到他们指定的地址。
      • 好的,我将在答案中附加一个(几乎)完整的示例
      • 好的,谢谢。将研究 PHP Mailer 和 Swift Mailer。另外,感谢其他所有人提供快速而有用的答案。
      【解决方案4】:

      提交后,您可以在 php 中发送预定义的电子邮件

      以下是代码示例

      假设您将有一个 html 页面,下面是示例 html 代码

      发送啜饮

      输入您的姓名:
      输入您的电子邮件:
      输入收件人的电子邮件:

      以下是"="send_email.php"中的php代码

      if ($_SERVER["REQUEST_METHOD"] == "POST")
      {
          $your_name = $_POST['your_name'];
          $your_email = $_POST['your_email']; 
          $recipients_email= $_POST['recipient_email']; 
      
          $email_subject = 'My Slurp'; 
          $email_body = "Hello, $recipients_email. $your_name ($your_email) has just sent you a slurp! You can ignore this message, or slurp them back.
          [Slurp Them Back] [Slurp Someone Else] [What's A Slurp?]";
      
          echo $email_body;
          // Send Email
          mail($recipients_email, $email_subject, $email_body);
      
      }
      ?> 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-20
        • 1970-01-01
        • 2012-07-14
        • 1970-01-01
        • 1970-01-01
        • 2020-04-16
        • 2018-09-15
        • 2019-12-15
        相关资源
        最近更新 更多