我需要知道使用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年后,根据我的经验,我了解到,为了发送没有垃圾邮件的大邮件,我们必须找到好的邮件服务提供商。
答案 0 :(得分:1)
您应该考虑使用电子邮件发送服务,例如Amazons SES,或其他营销工具,例如Emma,Mail黑猩猩,sendgrid,mailjet,mandrill等。
免费主机非常容易被电子邮件服务器阻止,因为垃圾邮件的使用性质很强。
答案 1 :(得分:1)
这个问题对所有营销人员来说都是一个争议问题。没有一个营销人员可以免于被称为垃圾邮件发送者。这些是影响电子邮件声誉的三个主要原因: -
一个。 技术设置
B中。 电子邮件内容和设计
℃。 收件人对您的批量电子邮件的反应
如果您想知道完整点,请点击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)
几年后,我在发送大量电子邮件时学到了很多这方面的知识。但我从下面链接得到的基本。这可能对你有用。