如何发送了大量电子邮件使用PHP

张贴 PHP的ShortLikeAFox关于2008年九月19号

所以,你要发送了大量电子邮件或要创建一个程序可以迅速地改变了发送了多个大规模的电子邮件。 这使得PHP的容易。 在这个例子中我将假定您有一个电子邮件地址列表要将某一电子邮件。 我还以为你是维持这一名单在数据库中,但此代码可以很容易地加以调整,以使用一硬编码的电子邮件地址清单或清单从其他来源。

“ ?的PHP

/ /首先连接到数据库,其中包含电子邮件地址的信息。
$用户= “用户” ;
$东道国= “主机” ;
$密码= “密码” ;
$数据库=数据库” ;

( "Couldn’t connect to server" ); $ cxn = mysql_connect ( $东道国, $的用户, $密码) 死亡不能连接到服务器” ) ;
mysql_select_db ( $数据库) ;

/ /查询表,其中包含的电子邮件地址。 填写自己的资料表名称在这里...
$查询=选择*从theEmailAddresses ” ;
( mysql_error ($cxn)); $结果= mysql_query ( $查询, $ cxn ) 死亡( mysql_error ( $ cxn ) ) ;
$ nrows = mysql_num_rows ( $结果) ;

/ /是谁的发件人将予以标明。 你可以把你想要在这里,但它确实是太不把道德的电子邮件地址,你没有控制这里。
从$ =作者: me@mydomain.com ” ;
/ /一个标准的电子邮件主题行
$主题=什么是新上mydomain.com ” ;
/ /邮件
$讯息= “嗨价值的朋友,

我们现在卖饼干在mydomain.com 。 请务必检查出来!
此致,
我“ ;

/ /我们已经询问的所有电子邮件地址。 现在我们只需要发送的电子邮件
0 ; $i < $nrows; $i ++ ){ ( $字母i = 0 ; $字母i $ nrows ; $ + + ) (

$行= mysql_fetch_assoc ( $结果) ;
提取物 ( $行) ;
/ /替换$电子邮件,无论栏的电子邮件地址被称为
$到= “ $ 电子邮件” ;
/ /发送的电子邮件,以每封电子邮件的数据库
如果( 电子邮件( $到, $议题, $消息,从$ ) ) (

/ /打印的名称电子邮件已成功发送。 我用这种公正,以确保该程序并没有被冻结。 在理论上他们应该是源源不断的名字正在印制“

); 回声 $到<br/> ” ) ;




? “

这位代码利用了PHP的mail ( )函数 这是一个非常强大和简单易用的功能。 请记住,伟大的力量是巨大的责任。 尽量不要使用此功能的罪恶。

|评论

如何手动插入一个用户到单模光纤使用PHP论坛

张贴于单模光纤(简单机械论坛) , PHP的由ShortLikeAFox对2008年7月28日

这个具体的例子是单模光纤1.1.5 。 我不能保证,将与任何其他版本。

所以你简单的机器运行软件和论坛要手动输入用户? 没问题。 我知道这个问题似乎非常具体,但解释的想法在这里能够适应其他类型的论坛和其他数据库驱动软件,如WordPress的。 在我们进入究竟如何做到这一点,让我们来看看如何简单机械论坛跟踪用户。 单模光纤中的数据库有一个表称为smf_members 。 该smf_members结构看起来就像这样:

领域 类型

钥匙 默认
ID_MEMBER mediumint ( 8 )未签名 一氧化氮 革命制度党 auto_increment
memberName varchar ( 80 ) 一氧化氮 MUL
dateRegistered 整数( 10 )未签名 编号 MUL 0
职位 mediumint ( 8 )未签名 编号 MUL 0
ID_GROUP smallint ( 5 )未签名 一氧化氮 MUL 0
lngfile tinytext 一氧化氮 MUL
lastLogin 整数( 10 )未签名 编号 MUL 0
realName tinytext 一氧化氮
instantMessages smallint ( 5 ) 一氧化氮 0
unreadMessages smallint ( 5 ) 一氧化氮 0
buddy_list 文字 一氧化氮
pm_ignore_list 文字 一氧化氮
messageLabels 文字 一氧化氮
密码 varchar ( 64 ) 一氧化氮
电子邮件地址 tinytext 一氧化氮
personalText tinytext 一氧化氮
性别 tinyint (四)未签名 编号 0
出生日期 日期 编号 MUL 0001-01-01
websiteTitle tinytext 编号
websiteUrl tinytext 一氧化氮
位置 tinytext 一氧化氮
聊天 tinytext 一氧化氮
目的 varchar ( 16 ) 一氧化氮
varchar ( 32 ) 一氧化氮
的MSN tinytext 一氧化氮
hideEmail tinyint ( 4 ) 一氧化氮 0
showOnline tinyint ( 4 ) 编号 1
timeFormat varchar ( 80 ) 一氧化氮
签字 文字 编号
timeOffset 浮动 一氧化氮 0
化身 tinytext 一氧化氮
pm_email_notify tinyint (四) 一氧化氮 0
karmaBad smallint ( 5 )未签名 一氧化氮 0
karmaGood smallint ( 5 )未签名 编号 0
usertitle tinytext 编号
notifyAnnouncements tinyint (四) 一氧化氮 1
notifyOnce tinyint ( 4 ) 一氧化氮 1
notifySendBody tinyint ( 4 ) 一氧化氮 0
notifyTypes tinyint ( 4 ) 一氧化氮
memberIP tinytext 编号
memberIP2 tinytext 编号
secretQuestion tinytext 编号
secretAnswer varchar ( 64 ) 编号
ID_THEME tinyint ( 4 )未签名 一氧化氮 0
is_activated tinyint ( 3 )未签名 一氧化氮 1
validation_code varchar ( 10 ) 一氧化氮
ID_MSG_LAST_VISIT 整数( 10 )未签名 编号 0
additionalGroups tinytext 编号
smileySet varchar ( 48 ) 一氧化氮
ID_POST_GROUP smallint ( 5 )未签名 一氧化氮 MUL 0
totalTimeLoggedIn 整数( 10 )未签名 一氧化氮 0
passwordSalt varchar ( 5 ) 编号

场,我们必须注意:

  • memberName -自E xplanitory。
  • dateRegistered -难道不是必要的,但如果不填写登记的日期显示为1 969年1 2月3 1日。 日期是保存为一个划时代的时间戳。 不知道如何计算时间戳记在你的脑袋? 没问题。 我用的是免费的发电机这里找到。
  • realName -应插入。 当我不能肯定我在这里重复memberName
  • 电子邮件地址-自E xplanitory。
  • is_activated -必须设置为1 ,因为我们手动激活的一个成员。
  • ID_POST_GROUP -我不会撒谎。 我不知道这是什么,但它似乎总是被设定为4 。 所以... 。 我总是将其设置为4 。 不是最好的方式计划,但可以做什么?
  • 密码-密码你想给新用户。 这是不可能弄清楚如何输入不看的单模光纤的文件。 正确的代码加密单模光纤密码的数据库看起来像这样:

($memberName).$password) $密码= sha1strtolower ( $ memberName ) 。 $密码)

在上面的代码行, $的密码是用户的实际密码。

怎么做:

/ /首先,连接到光纤数据库

$东道国= “主机” ; / /主机名称
$用户名= “用户名” ; / /数据库用户名
$ mypassword = “密码” ; / /数据库密码
$ db_name = “用户名” ; / /数据库名称

("cannot connect to server"); mysql_connect ( “ $主机” , “ $的用户名” , “ $ mypassword ” ) 死亡( “无法连接到服务器” ) ;
("cannot select DB"); mysql_select_db ( “ $ db_name ” ) 或死亡 ( “不能选择数据库” ) ;

$ memberName = “铁人三项” ;
$ realName = “托尼斯塔克” ;
$电子邮件地址= “ ironMan@ironMan.com ” ;
$ is_activated = 1 ;
$ ID_POST_GROUP = 4 ;

$密码= “ Tony1234 ” ;

($memberName).$password); $密码= sha1strtolower ( $ memberName ) 。 $的密码) ;

$ dateRegistered =十二亿一千六百九十五万一千二百; / / 08年7月25日凌晨2点

$查询= “插入smf_members ( memberName , realName ,电子邮件地址, is_activated , ID_POST_GROUP ,密码, dateRegistered )值( ' $ memberName ' , ' $ realName ' , ' $电子邮件地址' , ' $ is_activated ' , ' $ ID_POST_GROUP ' , ' $密码' , ' $ dateRegistered ' ) “ ;
("SMF Error 101.234 "); $结果= mysql_query ( $查询) 或死亡 ( “单模光纤错误101.234 ” ) ;

这就是这么简单!

|评论