【问题标题】:How to send large emails without spam?如何发送没有垃圾邮件的大型电子邮件?
【发布时间】:2015-10-13 22:02:24
【问题描述】:

我需要知道使用 php 发送多封电子邮件的最佳方法是什么。它不应该存储在垃圾邮件中,并且应该快速发送。

我已经在 PHP 中尝试过普通的邮件功能。但它运作不佳。还尝试在循环中使用邮件功能。只发送了几封邮件,其中一些邮件到达了垃圾邮件文件夹。

我的项目正在实时服务器上运行。而且我正在使用免费托管服务。

我的代码:

<?php
include "initialize.php";
if($source_url!='http://kalaivanan.byethost18.com/uadmin/send_result.php')
{
    echo "Access Denied";
}
else
{
    $id=$_GET['id'];
    $get_sem_period1=mysqli_query($con, "SELECT * FROM sem_period where id='$id' ");
    $get_sem_period=mysqli_fetch_array($get_sem_period1);
    $sem_period=$get_sem_period['sem_period'];
    $rrr=mysqli_query($con, "SELECT * FROM results where sem_period='$sem_period' ");
    $i=1;
    while($row=mysqli_fetch_array($rrr))
    {       

        $get_course=mysqli_query($con, "SELECT course,email FROM student_details where reg_no='$row[reg_no]' ");
        $get_course1=mysqli_fetch_array($get_course);
        $course_name=$get_course1['course'];
        $to=$get_course1['email'];

        $get_sub1=mysqli_query($con, "SELECT * from course_details where course_name='$course_name' ");
        $get_sub=mysqli_fetch_array($get_sub1);

        $sem_no=$row['sem_no'];

        $subjects=$get_sub['sem'.$sem_no];

        $new_subjects=explode(",",$subjects);
        $new_marks=explode(",", $row['sem_mark']);
        $echo_subject=null;
        for($x=0;$x<sizeof($new_subjects);$x++)
        {
            if($new_marks[$x]>40)
            {
                $exam_result="Pass";
            }
            else
            {
                $exam_result="Fail";
            }
            $echo_subject .="<tr><td>".$new_subjects[$x].":  ".$new_marks[$x]." - ".$exam_result."</td></tr>";
        }

        $errors='';
        $myemail = 'MYEMAIL';
        if( empty($errors))

    {



    $email_subject = "Enquiry Form: Your Results";
    echo "Mail id is: ".$to;
    echo $email_body = "<table border='1'>
                </br> $sem_period Result Will be Announced: Check Your Marks </br> </br>
                    <tr>
                        <td> Register Number: ".$row['reg_no']. "</td>
                    </tr>
                    <tr>
                        <td> Course Name: ".$course_name. "</td>
                    </tr>
                    <tr>
                        <td> Semester: ".$sem_no. "</td>
                    </tr>
                    <tr>
                        <td>MARKS ARE:</td>
                    </tr>
                    <tr>
                        <td> ".$echo_subject."  </td>
                        <td>    </td>
                    </tr>
             </table>
        ";

    $headers = "From: $myemail\n";

    $headers .= "Reply-To: $myemail";

    mail($to,$email_subject,$email_body,$headers);

    //redirect to the 'thank you' page

    echo "<script>alert('Mail Send Successfully');</script>";

    }

     $email_address="MYEMAIL";
    if (!preg_match(
    "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", 
    $email_address))
    {
        $errors .= "\n Error: Invalid email address";
    }

    }
}
?>

我的回答:

一年后,根据我的经验,我了解到要发送没有垃圾邮件的大邮件,我们必须找到好的邮件服务提供商。

【问题讨论】:

  • PHP 是后端,MySQL 是数据库。
  • 接收邮件服务器将根据某些标准对电子邮件进行评分。有些人甚至会检查 dns 记录,发送服务器是否是域的邮件服务器。通过评分,邮件不会进入垃圾邮件。
  • @Kalaivanan 你能分享一下到目前为止你尝试了什么吗?我的意思是一些代码示例。以便我们了解您想要实现的目标。
  • 我对此感到困惑。有人说 PHP 是前端,有人说 PHP 是后端。什么是对的?
  • @Kalaivanan 没有混淆。 PHP 是一种像 MySQL 一样处理数据库的语言。它被称为后端语言。为了清楚起见,只需阅读 PHP 文档或此链接,quora.com/…

标签: php mysql email bulk-email


【解决方案1】:

这个问题是所有营销人员都争论不休的问题。没有一个营销人员可以避免被称为垃圾邮件发送者。以下是影响电子邮件声誉的三个主要原因:-

  1. 技术设置。
  2. 电子邮件内容和设计。
  3. 对您的群发电子邮件的反应。

A. 技术设置

  1. 您的电子邮件格式必须正确。为确保电子邮件格式正确,您必须执行 SPF 和 DKIM 结帐。
  2. 在群发电子邮件中使用特殊标题,以便人们知道您发送的内容。
  3. 不要忘记在电子邮件中添加退订链接,它很容易看到并且有足够的大小和字体颜色。
  4. 您的 IP 地址和域的声誉必须很高。

B. 电子邮件内容和设计

  1. 避免在您的邮件中使用垃圾邮件词,例如折扣、收入、金钱、支票等等。
  2. 您在电子邮件中使用的链接非常重要。切勿从可疑资源中获取链接。否则,可能是欺诈。
  3. 您的电子邮件必须是纯文本版本。

C. 收件人对您的群发电子邮件的反应

  1. 每封电子邮件都必须包含退订链接,以便收件人退订但不标记为垃圾邮件。
  2. 收件人熟悉发件人的姓名和地址。
  3. 邮件发送频率:- 不要每天都发邮件。最佳频率不超过每周一次。

如果您想了解这方面的完整要点,请点击here

我是第一次写这个社区,希望这篇文章对你有帮助

【讨论】:

    【解决方案2】:

    几年后,我学到了很多关于发送大型电子邮件的知识。但是我从下面的链接得到的基本信息。这可能对您有用。

    【讨论】:

    • 那个有用的链接在哪里??
    【解决方案3】:

    如果我理解正确,您正在尝试向多个用户发送电子邮件。如果是这样,那么尝试使用下面脚本中的数组和 implode() 来发送多封电子邮件。避免垃圾邮件是您通过评论中所说的 frz3993 评分的方式。并且还根据您的托管服务提供商、速度、性能因素等进行衡量。

    看这个字符串的格式必须符合RFC 2822 as per Standard

    <?php
    $headers   = array();
    $headers[] = "MIME-Version: 1.0";
    $headers[] = "Content-type: text/plain; charset=iso-8859-1";
    $headers[] = "From: Kalaivanan <kalai@domain.com>";
    $headers[] = "Bcc: Alagu <alagu@domain2.com>";
    $headers[] = "Reply-To: Recipient Name <office@domain3.com>";
    $headers[] = "Subject: {$subject}";
    $headers[] = "X-Mailer: PHP/".phpversion();
    
    $receivers = array('vanan@gmail.com', 'alagukan@gmail.com', 'mathi@gmail.com',.... );
    
    mail(implode(',', $receivers), $subject, $message, $implode("\r\n", $headers));
    ?>
    

    【讨论】:

    • 谢谢先生,我会试试这个。
    • 如果收件人已经连接到我的邮箱,那么邮件会进入收件箱吗?
    • @Kalaivanan 接收者是您的用户或收到电子邮件的客户。这是正常的 PHP 邮件功能。所有电子邮件都将进入收件箱。根据您的用户,它可能会成为垃圾邮件。但是您不必担心它,因为它不受您的控制。你明白了吗?
    • @alagu 您正在使用这种方法暴露其中所有客户的电子邮件地址!你知道吗?
    【解决方案4】:

    您应该考虑使用电子邮件发送服务,例如 Amazons SES,或其他营销工具,例如 Emma、Mail chimp、sendgrid、mailjet、mandrill 等。

    由于使用垃圾邮件的性质,免费主机很容易被电子邮件服务器阻止。

    【讨论】:

      猜你喜欢
      • 2013-10-17
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 2017-05-26
      • 2011-07-12
      • 2017-03-02
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多