phpmail通过qq发邮箱失败_网站使用了cdn之后,腾讯企业邮箱无法通过phpmailer发送邮件。...

header("content-type:text/html;charset=utf-8");

require_once './email.class.php';

$name = "iojdsfajijd";

$mobile = "13344448888";

if (!empty($name) && !empty($mobile)){

$smtpserver = "smtp.exmail.qq.com";

$smtpserverport = 25;

$smtpusermail = "om@xxx.com";

$smtpmailtos = array("xxx@qq.com");

$smtpuser = "om@xxx.com";

$smtppass = "mypassword";

$mailsubject = "来源网页:".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

$mailbody = '';

$br="\r\n";

$mailbody .= "姓名:".$name.$br;

$mailbody .= "电话:".$mobile.$br;

$mailtype = "text";

$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);

$smtp->debug = true;

foreach ($smtpmailtos as $smtpmailto){

$sendState=$smtp->sendmail($smtpmailto, $smtpusermail, $mailsubject,$mailbody,$mailtype);

}

// if ( $sendState==1 ){

$list = array('name'=>$name,'tel'=>$mobile);

$json = json_encode($list);

echo $json;

//}

}

CDN用百度云和加速乐都出现了这种问题。我目前是用的百度云

我的邮件发送代码如上,在没用cdn的服务器上是可以正常发送邮件的,用了cdn之后,邮件发送出现如下报错:

Cannot connenct to relay host smtp.exmail.qq.com

Connection timed out (110)

Cannot send email to xxx@qq.com

解决过的办法:

iptables 出端口全部绿灯

php版本:5.6 检查了php.ini 和 allow_url_fopen = On,disable_function 没用 fsock和fsockopen函数,请问是怎么回事呢?求解答,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Node.js 实现点击按钮送信息到 qq 邮箱,你需要使用 Node.js 的第三方邮件送库。这里以 nodemailer 为例进行说明。 首先,你需要在你的项目中安装 nodemailer: ``` npm install nodemailer ``` 然后,在你的 Express 应用中添加路由处理 `/sendemail`,处理前端送过来的邮件送请求。示例代码如下: ```javascript const express = require('express'); const bodyParser = require('body-parser'); const nodemailer = require('nodemailer'); const app = express(); app.use(bodyParser.urlencoded({ extended: true })); app.post('/sendemail', (req, res) => { let transporter = nodemailer.createTransport({ service: 'qq', secure: true, auth: { user: '你的 QQ 邮箱地址', pass: '你的 QQ 邮箱密码' } }); let mailOptions = { from: '你的 QQ 邮箱地址', to: req.body.to, subject: req.body.subject, text: req.body.message }; transporter.sendMail(mailOptions, (error, info) => { if (error) { console.log(error); res.send('邮件失败'); } else { console.log('邮件送成功:' + info.response); res.send('邮件送成功'); } }); }); app.listen(3000, () => { console.log('服务器已启动'); }); ``` 这段代码使用 nodemailer 创建一个邮件传输对象 `transporter`,并设置服务提供商为 `qq`,使用 QQ 邮箱的 SMTP 服务器发送邮件。在创建 `mailOptions` 对象时,我们使用了表单数据中的收件人地址、主题和正文。最后,我们使用 `transporter.sendMail()` 方法发送邮件,并在邮件送完成后向前端送响应。 在前端页面中,你可以使用 jQuery 或其他类库监听按钮的点击事件,并使用 AJAX 技术将表单数据送到 `/sendemail` 路由。示例代码如下: ```html <!DOCTYPE html> <html> <head> <title>发送邮件</title> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> </head> <body> <form> <label for="to">收件人:</label> <input type="email" id="to" name="to" required><br> <label for="subject">主题:</label> <input type="text" id="subject" name="subject" required><br> <label for="message">内容:</label> <textarea id="message" name="message" required></textarea><br> <button type="button" id="send">送</button> </form> <script> $(function() { $('#send').click(function() { var to = $('#to').val(); var subject = $('#subject').val(); var message = $('#message').val(); $.post('/sendemail', {to: to, subject: subject, message: message}, function(response) { alert(response); }); }); }); </script> </body> </html> ``` 这里使用了 jQuery 的 `$.post()` 方法将表单数据送到 `/sendemail` 路径,然后在后端服务器上监听该路径。当邮件送完成后,我们在前端弹出一个提示框,显示邮件送结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值