php 邮件服务器 群发,发送使用PHP群发电子邮件发送使用PHP群发电子邮件(Sending mass email usin...

我目前正在写一个音乐博客。 管理员发布一个新的文章每2-3天。 一旦管理员岗位的文章,群发电子邮件将被立即发送到5000左右的用户。

什么是实现群发邮件功能的最佳方法是什么?

请问下面的函数工作?

function massmail()

{

$content = '...';

foreach ($recipients as $r) {

$_content = $content . 'trackOpenRate.php?id='.%24r.'';

mail($r, 'subject', $_content);

}

}

另一个问题是:如果所有用户5000使用雅虎邮件,雅虎将会把它当作一个DDOS攻击,并阻止我的SMTP服务器的IP地址?

Answer 1:

首先,使用随PHP的mail()函数是不是最佳解决方案。 这是很容易被标记为垃圾邮件,你需要设置标题,以确保您正确发送HTML格式的电子邮件。 至于是否会将代码段的工作,它会,但我怀疑你会得到里面的HTML代码不正确指定额外的头

我建议你看一看SwiftMailer ,其中有HTML的支持,针对不同的MIME类型和SMTP认证(这是不太可能的标记为垃圾邮件)的支持。

Answer 2:

我会插入所有邮件到一个数据库(有点像队列),然后处理它们一次一个,你在你的代码做了(如果你想使用swiftmailer或PHPMailer的等等,你可以做到这一点。)

每封邮件发送后,更新数据库,记录日期/时间被发送。

通过将在数据库中你首先得

你把它发给谁的纪录

如果你的脚本超时或失败,你必须重新运行它,那么你就不会结束发送相同的电子邮件到的人的两倍

你可以从一个cron作业运行发送过程,并在同一时间做一个批处理,让您的邮件服务器不不堪重负,并跟踪哪些已发送

请记住,如何自动退回邮件或无效的电子邮件,使他们能够自动从你的列表中删除。

如果您要发送多封电子邮件,你一定会得到一些反弹。

Answer 3:

这是建议,不是一个答案:你是非常非常最好使用专用的邮件列表软件。 邮递员是一个经常被使用的例子,但作为简单的东西mlmmj可能就足够了。 发送邮件质量实际上比它实际上似乎是一个更艰巨的任务。 你不仅需要发送邮件,你还必须跟踪的“死”的地址,以避免您的邮件,或者更糟,你的邮件服务器,被标记为垃圾邮件。 你必须处理人退订出于同样的原因。

您可以自己实现这些东西,但特别是反弹操作困难和吃力不讨好的工作。 使用邮件列表管理起来会方便很多。

至于如何让你的邮件可口的雅虎,那完全是另一回事。 尽管有种种缺点,它们好像把伟大的股票在SPF和域关键字。 你可能会实现它们,这将需要从你的邮件服务器管理员合作。

Answer 4:

您可以考虑使用cron的那种操作。 一次发送邮件群发肯定是不好的,它可能被检测为垃圾邮件,DDOS,崩溃的服务器等。

所以科雷可能是一个很好的解决方案,一次发送邮件100,然后等待几分钟,接下来的100等

Answer 5:

不要发送电子邮件使用标准的PHP工具5000余人。 您可以通过大多数ISP在几秒钟内得到禁止和永远不会知道它。 您应该使用一些邮件列表软件或电子邮件服务提供商做到了这一点。

Answer 6:

你为什么不喜欢使用phplist ? 它也建立在PHP梅勒的顶部和大量的行业领导者都在使用它。 我已经用它自己几次批量邮件发送给我的客户。 关于phplist的好处是,你可以在域级别加上一个期限级节流您的邮件。

我们也已经与一对夫妇,我们已经有了内部采集系统做的是我们的用户群推到mailling列表,然后有一个cron项每天触发一个给定的邮件。 可能性是无穷的,这是开源的东西真棒!

Answer 7:

另外,梨包:

http://pear.php.net/package/Mail_Mime http://pear.php.net/package/Mail http://pear.php.net/package/Mail_Queue

下。

PS:不要使用电子邮件()发送的邮件5000。 除了其他人都表示,这是非常低效的,因为邮件()创建每个电子邮件设置单独的插座,即使是同一个MTA。

Answer 8:

也有看的PHPMailer类。 PHPMailer的

Answer 9:

我已经做到了用Lotus Notus和PHP 。 如果你有机会到邮件服务器,也可以要求一些东西到这种解决方案mail server管理员:

1)创建的一组mail server :“销售部”。

2)分配给该group你需要该组中的帐户。

3)分配一个因特网地址的组:salesdept@DOMAIN.com。

4)在使用邮件功能创建你的PHP脚本:

$到= “salesdept@DOMAIN.com”;

邮件($到,$主题,$消息,$头);

它的工作对我来说,所有包括在该组中的帐户接收邮件。

最好的卢克斯的。

Answer 10:

您可以使用swiftmailer它。 通过使用批处理过程。

$message = Swift_Message::newInstance()

->setSubject('Let\'s get together today.')

->setFrom(array('myfrom@domain.com' => 'From Me'))

->setBody('Here is the message itself')

->addPart('Test message being sent!!', 'text/html');

$data = mysql_query('SELECT first, last, email FROM users WHERE is_active=1') or die(mysql_error());

while($row = mysql_fetch_assoc($data))

{

$message->addTo($row['email'], $row['first'] . ' ' . $row['last']);

}

$message->batchSend();

?>

Answer 11:

自己何苦编程? 这是一个博客,只是使用谷歌Feedburner的其中通过电子邮件自动更新推给用户。

它是免费的 ,它使用谷歌的基础设施 。 不能得到任何比这更好的。 我用它为我的一些网站/博客和它奇妙的作品。

不足之处是它似乎并没有得到大力发展,而不是支持任何更多。 我建议你皱眉客场以商业电子邮件列表,如果你是认真对待您的业务。

文章来源: Sending mass email using PHP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linq判断集合中相同元素个数_iOS开发swift语法梳理:集合Set

1.集合的三特性确定性:给定一个集合,任意给一个元素,该元素或者属于或者不属于该集合,二者必居其一。互斥性:一个集合中的所有元素都是不相同的。无序性:每个元素的地位相同,元素之间是无序的。…

python监控服务器信息,Python监控服务器实现邮件微信报警

本文中笔者暂时实现的只有cpu和内存的监控,python可以监控许多的主机信息,网络,硬盘,机器状态等,以下是代码的实现,代码可以实现windows和 linux 的监控。实验环境:Ubuntu16.04和windos10&#…

延迟关机_苹果电脑到底需不需要关机?关机和休眠你选择哪个

刚买了MacBook的朋友,会不会跟小编一样,是格外的珍惜,总想以一种最好的方式使用自己人生中第一个苹果电脑。苹果笔记本需要关机吗?不关机会卡吗?也成了自己关心的话题!Mac 到底要不要关机,这个问…

10鼎信诺为什么安装不了_鼎信诺审计软件一周常见问题(4.134.17)

今天介绍一下近期咨询较多的两款财务软件在取数后不能显示辅助核算明细的问题,分别是诺诺云和亿企代账,这两款软件都是采用云记账方式,均可以通过其平台中的导出审计数据的功能导出一个备份文件夹,备份文件夹中都是TXT格式的文本文…

Angular 8 + Spring Boot 2.2:立即构建一个CRUD应用程序!

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 如果您已经成为Java开发人员超过15年,那么您可能还记得什么时候有过多的J…

函数传参字典_Python 函数中的 4 种参数类型

作者:小小程序员链接:https://zhuanlan.zhihu.com/p/89538123来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。在调用函数时,通常会传递参数,函数内部的代码保持不变&#x…

gc频繁的暂停启动_减少主要GC暂停的频率

gc频繁的暂停启动这篇文章将讨论一种减少垃圾收集暂停的技术,它会延迟应用程序的延迟。 正如我几年前所写, 在JVM中无法禁用垃圾收集 。 但是,有一个巧妙的技巧可以用来大大减少长时间停顿的时间和频率。 如您所知,JVM内部发生了…

部署war文件到服务器,war包怎么部署到云服务器

war包怎么部署到云服务器 内容精选换一换部署提供可视化、一键式部署服务,支持并行部署和流水线无缝集成,实现部署环境标准化和部署过程自动化。本节通过以下四步介绍如何使用部署服务将归档在软件发布库的软件包部署到云主机上。第一步:准备…

Java 8中的StringJoiner与String.join的示例

将多个String文字或对象合并为一个是常见的编程要求,并且经常会发现需要为应用程序将String列表或String集合转换为CSV String的情况。 长期以来,JDK API无法将多个String文字或对象连接在一起,这迫使程序员编写诸如遍历所有String对象并使用…

中如何将方形图片转换成圆形图片_【PS】PS中不可不知的实用技巧!你都掌握了吗?...

今天给大家分享一些在PS中经常用到的实用小技巧,操作简单易上手。01 拉伸图片人物不变形在我们在PS里想要拉伸一些图片时,里面的人物往往会跟着一起变形,那么如何改变图片比例的同时,又不影响人物的形态呢?打开我们需要…

使用JUnit对ADF应用程序进行单元测试

JUnit是Java语言的单元测试软件包,由于ADF构建在J2EE框架之上,因此可以用来测试Oracle ADF应用程序。 单元测试基本上是根据某些定义的测试标准来验证最小的可测试模块的过程。 在这里,我将说明如何在JDeveloper 12.2.1.3中设置和使用JUnit来…

拆分js文件_2021入门Webpack,看这篇就够了:Webpack.config.js 解析

这是优妈成长记的第63篇原创这是一个webpack配置说明本文是发布在github上webpack-demo的README文件内容。主要对webpack.config.js每一条的注释说明。github项目地址:https://github.com/hourong88/webpack-demo可以点击文章最下方【阅读原文】跳转github链接查看&…

orcad自上而下_开发自上而下的Web服务项目

orcad自上而下这是从Alessio Soldano编辑的Advanced JAX-WS Web Services手册中摘录的示例章节。 第一章介绍了自底向上创建Web服务端点的方法。 它允许非常快地将现有bean作为Web Service端点公开:在大多数情况下,将类转换为端点只需在代码中添加少量注…

安装win7系统不能开机启动服务器,win7系统开机启动项不能加载的原因分析及解决...

开机启动项是每台电脑都有的东西,就是多和少的问题的,很多人开机的时候喜欢加载很多的启动项,其实这也没什么不好的。现在的电脑为了受到更好的保护,往往在开机的时候就加载了一些启动项,如:杀毒软件&#…

4 指针运算_C++用指针访问数组元素(学习笔记:第6章 08)

用指针访问数组元素[1]数组是一组连续存储的同类型数据,可以通过指针的算术运算,使指针依次指向数组的各个元素,进而可以遍历数组。定义指向数组元素的指针定义与赋值例:int a[10], *pa; pa&a[0]; 或 paa;等效的形式经过上述定…

属性面板 脚本_3.1 创建和使用脚本

在unity中,游戏物体的行为是通过组件来驱动的,我们可以通过内建的组件来给我们的游戏物体组合各种能力,尽管如此,要知道我们的需求永远是动态的,很快我们就会发现,内建的组件功能已经无法满足我们的需求&am…

vue加跨域代理静态文件404_解决vue本地环境跨域请求正常,版本打包后跨域代理不起作用,请求不到数据的方法——针对vue2.0...

问题:在本地使用了proxyTable代理可以正常跨域请求后台数据,打包上传后就无法获得后台的json文件。查看了相关资料可以用nginx进行解决。还可以使用命名环境变量,请求的时候进行判断,话不多说上干货module.exports merge(prodEnv…

tomee_使用Vysper,TomEE和PrimeFaces将XMPP服务器嵌入JSF Web应用程序内部

tomee我有一个需要在完成某些工作时通知用户的应用程序。 它使用JSF和Primefaces,因此可以使用大气 (也称为Push)来实现这种通知。 但是另一个有趣的方法是使用嵌入在Java Web应用程序中的XMPP服务器。 好的,好的,您不…

板框导入_板框结构导入有问题?这几个问题最常见,附解决方法!

对于一些比较复杂的结构,Altium的处理能力有限,通常采用AutoCAD来进行设计,然后在Altium中执行菜单栏中“文件”→“导入”→DWG/DXF命令,选择需要导入的DXF文件即可。如果导入过程中出现了乱码,报错等问题要如何解决呢…

您如何使用硒来计算自动化测试的投资回报率?

跨浏览器测试是一种测试,需要大量的精力和时间。 通过不同的浏览器,操作系统,设备,屏幕分辨率测试Web应用程序,以评估针对各种受众的Web内容呈现的过程是一项活动。 特别是如果手动处理。 使用Selenium进行的自动跨浏览…