如何发送没有垃圾邮件的大型电子邮件?

时间:2015-07-23 14:17:39

标签: php mysql email bulk-email

我需要知道使用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";
    }

    }
}
?>

我的回答:

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

4 个答案:

答案 0 :(得分:1)

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

免费主机非常容易被电子邮件服务器阻止,因为垃圾邮件的使用性质很强。

答案 1 :(得分:1)

这个问题对所有营销人员来说都是一个争议问题。没有一个营销人员可以免于被称为垃圾邮件发送者。这些是影响电子邮件声誉的三个主要原因: -

  1. 技术设置。
  2. 电子邮件内容和设计。
  3. 对批量电子邮件的反应。
  4. 一个。 技术设置

    1. 您的电子邮件格式必须正确无误。为了确保电子邮件的格式,您必须执行SPF和DKIM结帐。
    2. 在批量电子邮件中使用特殊标题,以便人们了解您发送的内容。
    3. 不要忘记在电子邮件中添加取消订阅链接,它很容易看到,并且有足够的大小和字体颜色。
    4. 您的IP地址和域名必须很高。
    5. B中。 电子邮件内容和设计

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

        1. 每封电子邮件必须包含取消订阅链接,以便收件人取消订阅但不会标记为垃圾邮件。
        2. 收件人熟悉发件人的姓名和地址。
        3. 发送电子邮件的频率: - 不要每天发送电子邮件。最佳频率不超过每周一次。
        4. 如果您想知道完整点,请点击here

          我第一次写这个社区,希望这篇文章能帮到你

答案 2 :(得分:0)

如果我理解正确,您正尝试向多个用户发送电子邮件。如果是这样,那么尝试使用array&amp; 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));
?>

答案 3 :(得分:0)

几年后,我在发送大量电子邮件时学到了很多这方面的知识。但我从下面链接得到的基本。这可能对你有用。