使用 gmail smtp 服务器发送电子邮件时 smtp.gmail.com 与 ssl://smtp.gmail.com

2023-12-13

根据this

Gmail SMTP 服务器也可用于中继来自您的邮件 设备或应用程序。您可以使用以下方式连接到 Gmail 邮件服务器 SMTP、SSL/TLS。如果您使用 SMTP 连接,则只能将邮件发送至 Gmail 或 Google Apps 用户;如果您使用 SSL/TLS 连接,则可以发送 邮寄给任何人。

如果您的设备或应用程序支持 SSL - 连接到 smtp.gmail.com 在端口 465 上。

所以我尝试在端口 465 上连接到 smtp.gmail.com。我收到以下错误:

无法使用 PHP SMTP 发送电子邮件。您的服务器可能不是 配置为使用此方法发送邮件。

Some code使用另一个地址“ssl://smtp.gmail.com”。

当我也在端口 465 上使用 ssl://smtp.gmail.com 时,我的应用程序现在可以正常工作。

  • 如果 ssl://smtp.gmail.com 也使用 ssl,那么 ssl://smtp.gmail.com 和 smtp.gmail.com 有什么区别?
  • 为什么我们无法在没有 SSL 的情况下向其他域发送电子邮件?这只是gmail为了安全目的才做的吗?

我对此非常陌生。谁能解释一下吗?如果重要的话我正在使用 php。


主机名前缀之间的区别ssl://如果没有它,底层流是否会被wrapped通过 OpenSSL,或以纯文本方式讲话。

当您通过端口 465 连接到 Gmail 时,它预计客户端将使用 TLS 加密。最有可能的是,您看到的错误消息是连接到期望加密连接的服务的一般结果,而该服务只是尝试以纯文本方式写入和读取数据。

当您使用 PHP 时,PHP 会为您带来魔力ssl://用于连接到支持 TLS 或 SSL 的服务的包装器。它允许您以与未加密连接相同的方式在流上读取和写入(使用 fread/fwrite),并且所有握手、加密和解密都在后台完成,只需在主机上添加前缀即可使用 ssl 包装器。

至于第二个问题,很可能与安全有关。为了中继(将邮件发送到另一个域),您需要通过 SMTP 进行身份验证,这绝对不应该以明文形式完成,而您可以使用未加密的连接在端口 25 上进行连接,并将邮件发送给 Gmail 用户而不进行身份验证(这是最外面的情况)邮件服务器在其用户之一向 Gmail 发送邮件时执行此操作)。但从技术上讲,没有什么可以阻止他们允许您使用未加密的连接发送邮件,甚至使用 Gmail 凭据进行身份验证(这称为开放中继,通常被垃圾邮件发送者严重滥用)。

您可以通过阅读有关 SMTP 协议的内容来了解​​有关第一个问题的更多信息STARTTLS命令和一般的 TLS 加密。STARTTLS允许客户端通过未加密的连接连接到邮件服务器,然后协商(升级)连接以使用加密,而另一方面,到端口 465 的连接期望在连接建立后立即进行 TLS 握手发生任何协议 (SMTP) 通信。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 gmail smtp 服务器发送电子邮件时 smtp.gmail.com 与 ssl://smtp.gmail.com 的相关文章

  • 检测 JPEG 图像质量

    我允许用户上传图像 但是 我希望保持 JPEG 质量不超过 90 我打算做的是检测当前的质量 如果低于 90 什么都不做 如果超过90 则使用Image Magick将图像重新压缩到90 可以这样做吗 我更喜欢 PHP 但任何语言都会有帮助
  • PHP 裁剪图像以固定宽度和高度而不丢失尺寸比例

    我希望创建尺寸为 100 像素 x 100 像素的缩略图 我看过很多解释这些方法的文章 但如果要保持尺寸比 大多数文章最终都会有宽度 高度 例如 我有一个 450 像素 x 350 像素的图像 我想裁剪为 100px x 100px 如果我
  • 无法为数据库添加 SSL 支持

    我正在使用 Spring 3 Hibernate 和 postgres 9 2 为了启用 SSL 数据库连接 我按照以下步骤操作 创建自签名证书 参考 http www postgresql org docs 9 2 static ssl
  • 根据选择值显示/隐藏字段

    我试图根据我选择的字段之一的值显示和隐藏一些表单字段 我希望使用数组来保存每个选择值应该显示的内容和不应该显示的内容 以将我从大量的 switch 语句中拯救出来 但无法弄清楚如何做到这一点 我正在使用 PHP 和 jQuery 任何帮助都
  • PHP-将字符串转换为unicode

    我在做这个工作 source mb convert encoding test unicode utf 8 source unpack C source var dump source return array size 8 1 gt in
  • artisan 明确编译返回错误代码 255

    跑步时composer install在我的 laravel 项目中 我收到错误 脚本 php artisan 清晰编译处理返回的 post install cmd 事件 错误代码为 255 关于可能出现的问题有什么建议吗 请注意 comp
  • 在 PHP 中重新定义常量

    是否可以在 php 中重新定义由define功能 我有一个包含多个常量的类 其中包含用户数据 我正在尝试为多个用户使用该类 define ALLEGRO ID id define ALLEGRO LOGIN login define ALL
  • 如何使用 PHP 从图像文件中读取 Lightroom 关键字?

    我有一个照片社区 www jungledragon com http www jungledragon com 允许用户上传照片 我的平台是 PHP CodeIgniter 作为上传过程的一部分 我已经使用 PHP 读取 EXIF 信息ex
  • PHP—array_merge_recursive() - 相同键没有数组

    php a php gt data1 tag gt div classes gt 1 2 3 php gt data2 tag gt section classes gt 2 3 4 5 6 php gt result array merg
  • 多维数组内的移动

    我有一个用表格显示的数组 如何使用用户输入进行移动 目前 0 被分配给每个数组 但我计划为该数组分配其他值 我的问题是 如何使用用户输入在数组内向上 向下 向右 向左移动和对角移动 Array 0 gt Array 0 gt 0 1 gt
  • Laravel 验证规则仅针对字母

    我正在尝试添加验证规则以仅接受信件 我正在使用regex规则 但它仍然不起作用 下面是我的代码 Validate request input this gt validate request name gt required regex p
  • javax.net.ssl.SSLException:没有可用的 PSK。无法恢复

    我正在使用 Jetty 客户端发送传出请求 在 Java 10 下完美运行的代码在 Java 11 下突然出现以下异常 javax net ssl SSLException No PSK available Unable to resume
  • Jquery UI 日期选择器 设置默认日期

    我使用 jQuery UI 作为日期选择器 我想在字段中显示当前日期作为默认值 以下是我的代码 请帮助 From Date
  • 在 php、ajax 或 javascript 中加载进度?

    任何人都知道如何在系统仍在服务器端获取数据的同时在客户端显示加载进度以及完成的百分比 例如 当我在客户端按下 确定 按钮时 它会调用服务器端从数据库收集数据 整个过程可能需要2到3分钟 如何在客户端显示加载进度 大约加载完成了多少 我怎样才
  • 自动生成PHP代码的策略?

    我正在开发一个框架 在后端创建 ER 图后 该框架可以动态地对自身的各个部分进行编程 作为一名 PHP 新手 我想知道是否还有比打开一个纯 xyz php 文本文件然后将动态生成的代码添加到该文件更奇特的事情 是的 尝试一下Zend Cod
  • Laravel 计划命令一旦启动就停止?

    我已经为 laravel 5 1 项目设置了预定命令 它有效 命令已经启动 但愚蠢的是我没有考虑如何停止它 通常您不想停止它 但该命令正在向数据库表中插入近 50 万行 而我只是想确保我可以在不登录服务器的情况下启动它 显然我需要在某个时候
  • Paypal IPN 发送“待处理”并以“多币种”为理由?

    我正在使用 Paypal IPN 从我的网站收款 该网站目前仅处于开发阶段 因此我建立了一个沙盒网站进行测试 并且我已经通过在英国注册的测试帐户非常成功地以英镑货币 我的居住国货币 进行付款 但是 我希望该网站能够检测访问者的原籍国并允许他
  • 使用 Laravel 4 验证多个文件上传

    如何在 Laravel 4 中验证上传文件的数组 我已将其设置为允许多个文件 并且已测试这些文件是否存在于 Input file files 数组中 但如何验证每个文件呢 这是我尝试过的 notesData array date gt In
  • WordPress 中的 add_action 函数

    嗯 我正在学习创建一个 WordPress 插件 我下载了一个并阅读了代码 然后我看到了这个 我假设 foo 是它将添加操作的标签 但是 array 到底是做什么的呢 add action foo array foo1 foo2 我在看ht
  • PHP 如何判断用户是否按下了 Enter 键或 Submit 按钮?

    我遇到的问题是我在一个表单中有多个提交输入 每个提交输入都有不同的值 我更愿意将它们保留为提交 Whenever the user presses Enter it is as though the topmost submit input

随机推荐