linux PHPMailer 发送邮件sendmail 发邮件失败问题

linux PHPMailer 发送邮件sendmail 发邮件失败问题,第1张

1、用的腾讯云服务器,折腾了很多资料,发现改错了。谨记检查端口25开放

2、TP框架用PHPMailer 发送邮件,windows本地测试正常,上传到腾讯云linux服务器就发送不成功:

细节如下: [root@VM_82_192_centos ~]# tail -40 /var/log/maillog

把class.phpmailer.php中的$this->mailer = smtp中的smtp换成大写:SMTP。说是因为qq 163等邮箱需要接受发送过来的大写的SMTP

发现还是不成功

反过头来检查25端口:

发现没反应:yum重装sendmail,还是同样。直接杀到云服务器哪儿,检查25端口是否开放;泪流满面:赶紧解封。

确认:

OK,测试发送 mail -s '33333333555ksTest mail' 2848278204@qq.com </etc/passwd

你好很高兴回答您的问题:

排查流程,检查网络,域名解析是否正常

防火墙是否放行邮件25或465端口

检查是否配置/etc/mail.rc

如果是云服务推荐使用465发送邮件,不容易屏蔽.

CI 里面有强大的 Email 类来提供一些功能,很少有介绍CI 的东西,这里介绍CI的email类的使用方法,来自CI 中国官方网站。

比如 多协议:Mail、Sendmail 和 SMTP 多个收件人 抄送和密 HTML 或纯文本邮 附 自动换 邮件优先 密送批处理模式,开启时,大邮件列表将被分成小批次密送。 Email 调试工具

发送邮件

发送邮件不仅简单,而且可以发送时进行配置或者将参数放到配置文件中。

这里是一个发送邮件的标准示例。注意:该示例是假定使用一个控制器来发送邮件。

$this->load->library('email')

$this->email->from('your@example.com', 'Your Name')

$this->email->to('someone@example.com')

$this->email->cc('another@another-example.com')

$this->email->bcc('them@their-example.com')

$this->email->subject('Email Test')

$this->email->message('Testing the email class.')

$this->email->send()

echo $this->email->print_debugger()

设置 Email 参数

有17个不同的有效参数来提供给你如何定制你发送的电子邮件。您可以在此手动设置,或自动通过你储存在的配置文件中的来设置,描述如下:

参数设定通过一系列的参数值去完成电子邮件的initialize功能。这里有一个例子,说明怎样设置一些参数设定:

$config['protocol'] = 'sendmail'

$config['mailpath'] = '/usr/sbin/sendmail'

$config['charset'] = 'iso-8859-1'

$config['wordwrap'] = TRUE

$this->email->initialize($config)

说明: 大多数参数都有默认值,如果你没有配置这些参数,它们的默认值就会被使用。

在配置文件中设置 Email 参数

如果您不想使用使用上述方法设定参数,您可以把它们放入一个配置文件。创建一个新文件称为email.php,添加$config数组在该文件中。然后将该文件保存为config/email.php它将自动的被使用。如果您保存了一个参数配置文件,就不需要使用$this->email->initialize()函数来初始化参数了

$this->email->from()Email 函数参考

设置发件人email地址和名称:

$this->email->from('you@example.com', 'Your Name')

$this->email->reply_to()

设置邮件回复地址. 如果没有提供这个信息,将会使用”from()”函数中的值. 例如:

$this->email->reply_to('you@example.com', 'Your Name')

$this->email->to()

设置收件人email地址(多个). 地址可以是单个、一个以逗号分隔的列表或是一个数组:

$this->email->to('someone@example.com')$this->email->to('one@example.com,two@example.com,three@example.com')$list = array('one@example.com', 'two@example.com', 'three@example.com')

$this->email->to($list)

$this->email->cc()

设置抄送(Carbon Copy / CC) email地址(多个). 类似to()函数, 地址可以是单个、一个以逗号分隔的列表或是一个数组.

$this->email->bcc()

设置暗送(Blind Carbon Copy / BCC) email地址(多个). 类似to()函数, 地址可以是单个、一个以逗号分隔的列表或是一个数组.

$this->email->subject()

设置email主题:

$this->email->subject('This is my subject')

$this->email->message()

设置email正文部分:

$this->email->message('This is my message')

$this->email->set_alt_message()

设置可选的邮件EMAIL正文部分:

$this->email->set_alt_message('This is the alternative message')

这是EMAIL可选的一部分,如果你发送带HTML的邮件,这可以用到。它用于当接收邮件都不支持HTML格式时显示给用户的内容。如果你没有设置这部分,CodeIginiter会自动从邮件正文中提取去掉TAGS的部分。

$this->email->clear()

将所有EMAIL的变量清空. 这个方法用于当你在循环中发送邮件时,可以在两次循环中重新设置邮件内容。

foreach ($list as $name =>$address)

{

$this->email->clear()

$this->email->to($address)

$this->email->from('your@example.com')

$this->email->subject('Here is your info '.$name)

$this->email->message('Hi '.$name.' Here is the info you requested.')

$this->email->send()

}

如果将参数设为TRUE,附件也会被清空:

$this->email->clear(TRUE)

$this->email->send()

发送EMAIL. 根据发送结果,成功返回TRUE,失败返回FALSE。就可以将它用于判断语句:

if ( ! $this->email->send())

{

// Generate error

}

$this->email->attach()

添加附件。第一个参数是文件路径/文件名. 注意: 用路径而不是URL。多次使用该函数可以添加多个附件:

$this->email->attach('/path/to/photo1.jpg')

$this->email->attach('/path/to/photo2.jpg')

$this->email->attach('/path/to/photo3.jpg')

$this->email->send()

$this->email->print_debugger()

返回包含邮件内容的字符串,包括EMAIL头和EMAIL正文。用于调试。

取消自动换行

如果你启用自动换行(建议遵循 RFC 822),EMAIL中有一个非常长的链接它将会换行,导致链接不能被收信人直接点击打开。CodeIgniter可以对正文的部分片段避免这种自动换行,比如:

The text of your email that

gets wrapped normally.

{unwrap}http://example.com/a_long_link_that_should_not_be_wrapped.html{/unwrap}

More text that will be

wrapped normally.

将你不想自动换行的部分放入:{unwrap}{/unwrap}中间


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7442839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存