在2020年使用PHP 7.2设置SMTP邮件-2020年使用PHP邮件

如何解决在2020年使用PHP 7.2设置SMTP邮件-2020年使用PHP邮件

我想知道如何在2020年在php 7.2中设置自动SMTP邮件系统。 我知道mail()函数,但这是在初始设置之后进行的。

我已经看到了关于stackoverflow的其他问题,但是我在发布此问题之前,我只发现了 2011 2012 ,并且从那时起,PHP在安全性方面和其他方面已经发生了很大变化。

这是我尝试过的:

根据我发现的情况,我应该在ini_set()文件中更改php.ini,但是那里没有ini_set()函数。我所做的就是像被告知那样将smtp更改为smtp=my-mail-server-of-choice-here,将smtp_port更改为smtp_port=587

此外,我应该更新sendmail.ini文件夹中的sendmail,但是(猜测是什么) sendmail folder不存在->这也意味着{{1 }}和sendmail.exe 也不存在

我也收到此错误sendmail.ini

这是文件:

mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first

该文件(根据我的阅读)应该可以在$to = 'my-users-mail@some-random.mail'; $subject = "HTML email"; $message = "Hi Bob!"; $headers = "MIME-Version: 1.0"."\r\n"; $headers .= "Content-type:text/html;charset=UTF-8"."\r\n"; $headers .= 'From: my-mail@gmail.com'."\r\n"; mail($to,$subject,$message,$headers); 文件中的任何地方{strong>不存在的ini_set()中进行修复-我猜只有不合时宜的解决方案可用

什么是现代标准,即php 7.2,该方法实际上可以正常工作并且安全

顺便说一句,我正在php.ini上使用XAMPP v3.2.4(我将在生产中迁移到WAMPP),并且我正在使用localhost作为邮件服务

解决方法

您对“现代”思维有个坏主意。做事的新方式实际上是使用扩展,框架等...-可重用代码是这个快速扩展的世界

像90年代或80年代那样,人们没有互联网那么广泛或根本没有互联网,如果您想(让我说)在两台计算机之间建立连接(想想NASA之类的东西),就必须写从头开始使用您自己的协议(POP或IMAP),并花费数周甚至数月的时间进行编程。

现在是2020年。我们有很多可重用的代码可供广泛使用,包括存储库,开源软件等...您了解图片

当然,您可以在一周内用php编写自己的身份验证,也可以直接下载

Net_Socket(我有1.2.2)-> https://pear.php.net/package/Net_Socket/download/ Net_SMTP(我有1.9.2)-> https://pear.php.net/package/Net_SMTP/download/ Mail_extension(我的版本为1.4.1)-> https://pear.php.net/package/Mail/download/

使用7-zip提取所有内容,并像这样进行构造

您的主文件夹

.Mail-1.4.1
    >Mail.php
    >Mail
        > some default files(dont touch these)
        > Net(here you paste files from Net_SMTP and Net_Socket - they should be named SMTP.php and Socket.php)

. sendmail.php

在sendmail.php中,您可以这样写:

//Make sure you made your folder/file structure like you should
require_once "./Mail-1.4.1/Mail.php";

$host = "your-mail-server-of-choice-here";
$port = "465";
$username = "your mail or username";
$password = "your password";

//setting up smtp connection
$smtp = Mail::factory(
    'smtp',array (
        'host' => $host,'port' => $port,//you don't need this if u are using mail server that doesn't need authentication
        'auth' => true,'username' => $username,'password' => $password
    )
);

$from = "your-mail-here";
$to = "recepient-mail-here";
$subject = "Ay bro!";
$body = "Your message here!";

$headers = array (
    'From' => $from,'To' => $to,'Subject' => $subject
);

$mail = $smtp->send($to,$headers,$body);
if (PEAR::isError($mail)) {
    exit( "Error happened :( -->".$mail->getMessage() );
}

那很容易吧?如果我们按照您的方式去做,您会花费大量的时间和眼泪(是的眼泪)来建立所有这些连接和东西并使其安全等等。我希望您对此结果感到满意!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-