一个邮件发送的功能,本机调试无问题,但发布到阿里云服务器后邮件发送功能失败。

网上查了下大概是说阿里云把发送邮件的25端口禁用掉了

那么解决方式一就是向阿里云申请开放25端口,但具体如何申请,并未深入操作。

解决方式二:使用邮件服务商的加密端口。

但是当使用465端口时,先后试验过smtp.mxhichina.com(阿里企业邮箱)、smtp.163.com(163邮箱)、smtp.qq.com(qq邮箱)三种发送方式,均失败!

再尝试考虑SSL加密SMTP通过587端口进行发件,发送成功。

以下为配置及源码

<?xml version="1.0" encoding="utf-8"?>
<xml><!--收件人邮箱地址--><ConsigneeAddress>pro@163.com</ConsigneeAddress><!--抄送邮箱地址,多个邮箱间用'|'分割--><BccAddress></BccAddress><!--收件人名称--><ConsigneeName>浦泓医疗</ConsigneeName><!--发件人名称--><ConsigneeHand>微商城</ConsigneeHand><!--邮件主题--><ConsigneeTheme>睛彩眼界商城订单</ConsigneeTheme><!--发件邮件服务器的Smtp设置--><SendSetSmtp>smtp.qq.com</SendSetSmtp><!--发件人的邮件--><SendEmail>124@qq.com</SendEmail><!--发件人的邮件密码--><SendPwd>boblunxyluwdjjbh</SendPwd><!--发件端口号--><port>587</port><!--邮件内容--><SendContent>您有新的订单消息</SendContent><!--后台管理地址--><serverAddress>http://xxx/admin/login</serverAddress>
</xml>

邮箱配置

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Web;
using System.Xml;namespace MallServer.Utility
{public class emailhelper{public static bool MailSend(emailpara para){try{EmailParameterSet EPSModel = new EmailParameterSet();string filepath = System.Web.HttpContext.Current.Server.MapPath("\\Files\\email\\email.xml");XmlDocument xml = common.xmlHelper.getXML(filepath);string BccAddress = xml.SelectSingleNode("xml").SelectSingleNode("BccAddress").InnerText;//邮件抄送地址string portvalue = xml.SelectSingleNode("xml").SelectSingleNode("port").InnerText; //发送邮件的端口int port = 587;int.TryParse(portvalue, out port);string serverAddress= xml.SelectSingleNode("xml").SelectSingleNode("serverAddress").InnerText;//提示跳转的管理地址
              EPSModel.ConsigneeAddress = xml.SelectSingleNode("xml").SelectSingleNode("ConsigneeAddress").InnerText;EPSModel.ConsigneeName = xml.SelectSingleNode("xml").SelectSingleNode("ConsigneeName").InnerText;//
                EPSModel.ConsigneeHand = xml.SelectSingleNode("xml").SelectSingleNode("ConsigneeHand").InnerText;//发件人标题EPSModel.ConsigneeTheme = xml.SelectSingleNode("xml").SelectSingleNode("ConsigneeTheme").InnerText;//收件人的主题EPSModel.SendSetSmtp = xml.SelectSingleNode("xml").SelectSingleNode("SendSetSmtp").InnerText;//发件邮件服务器的Smtp设置EPSModel.SendEmail = xml.SelectSingleNode("xml").SelectSingleNode("SendEmail").InnerText;//发件人的邮件EPSModel.SendPwd = xml.SelectSingleNode("xml").SelectSingleNode("SendPwd").InnerText;EPSModel.SendContent = xml.SelectSingleNode("xml").SelectSingleNode("SendContent").InnerText;if (para.ConsigneeTheme != "") {EPSModel.ConsigneeTheme = para.ConsigneeTheme;}if (para.SendContent != "") {EPSModel.SendContent = para.SendContent+"\r\n查看详细请登陆 "+serverAddress;           }//确定smtp服务器端的地址,实列化一个客户端smtp System.Net.Mail.SmtpClient sendSmtpClient = new System.Net.Mail.SmtpClient(EPSModel.SendSetSmtp);//发件人的邮件服务器地址//构造一个发件的人的地址System.Net.Mail.MailAddress sendMailAddress = new MailAddress(EPSModel.SendEmail, EPSModel.ConsigneeHand, Encoding.UTF8);//发件人的邮件地址和收件人的标题、编码//构造一个收件的人的地址System.Net.Mail.MailAddress consigneeMailAddress = new MailAddress(EPSModel.ConsigneeAddress, EPSModel.ConsigneeName, Encoding.UTF8);//收件人的邮件地址和收件人的名称 和编码//构造一个Email对象System.Net.Mail.MailMessage mailMessage = new MailMessage(sendMailAddress, consigneeMailAddress);//发件地址和收件地址if (BccAddress != ""){string[] addressArr = BccAddress.Split('|');for (int i = 0; i < addressArr.Length; i++){mailMessage.Bcc.Add(new MailAddress(addressArr[i]));//添加抄送
                    }}mailMessage.Subject = EPSModel.ConsigneeTheme;//邮件的主题mailMessage.BodyEncoding = Encoding.UTF8;//编码mailMessage.SubjectEncoding = Encoding.UTF8;//编码mailMessage.Body = EPSModel.SendContent;//发件内容mailMessage.IsBodyHtml = false;//获取或者设置指定邮件正文是否为html//设置邮件信息 (指定如何处理待发的电子邮件)sendSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定如何发邮件 是以网络来发sendSmtpClient.EnableSsl = true;//服务器支持安全接连,安全则为truesendSmtpClient.Port = port;sendSmtpClient.UseDefaultCredentials = true;//是否随着请求一起发//用户登录信息NetworkCredential myCredential = new NetworkCredential(EPSModel.SendEmail, EPSModel.SendPwd);sendSmtpClient.Credentials = myCredential;//登录
                sendSmtpClient.Send(mailMessage);//发邮件return true;}catch (Exception ex){//common.CommonMethod.WriteTxt("ex.message:"+ex.Message);//common.CommonMethod.WriteTxt("ex.Source:" + ex.Source);//common.CommonMethod.WriteTxt("ex.StackTrace:" + ex.StackTrace);return false;}}}
}

发邮件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;namespace MallServer.Utility
{public class emailpara{public string ConsigneeTheme { get; set; }public string SendContent { get; set; }}
}

emailpara

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;namespace MallServer.Utility
{public class EmailParameterSet{/// <summary>/// 收件人的邮件地址 /// </summary>public string ConsigneeAddress { get; set; }/// <summary>/// 收件人的名称/// </summary>public string ConsigneeName { get; set; }/// <summary>/// 收件人标题/// </summary>public string ConsigneeHand { get; set; }/// <summary>/// 收件人的主题/// </summary>public string ConsigneeTheme { get; set; }/// <summary>/// 发件邮件服务器的Smtp设置/// </summary>public string SendSetSmtp { get; set; }/// <summary>/// 发件人的邮件/// </summary>public string SendEmail { get; set; }/// <summary>/// 发件人的邮件密码/// </summary>public string SendPwd { get; set; }/// <summary>/// 发件内容/// </summary>public string SendContent { get; set; }}
}

EmailParameterSet

说明:

实例中使用的是qq邮箱,但邮箱的密匙非qq的密码,而是邮箱的独立密码,可以进入qq邮箱,然后在设置-》账户里面设置

并且要保证邮箱的POP3/SMTP服务开启,同样是进入qq邮箱,然后在设置-》账户里面设置

引用:

https://www.cnblogs.com/axinno1/p/8303130.html

转载于:https://www.cnblogs.com/eye-like/p/10103783.html

阿里云服务器邮件发送相关推荐

  1. 解决项目部署到阿里云服务器邮件发送失败的方法

    阿里云服务器禁用了25端口,所以改为465端口采用SSL协议传输邮件 163网易免费邮箱相关服务器信息: 相关代码: package com.yc.util;import java.io.File; ...

  2. 阿里云SMTP邮件发送Python demon实践

    阿里云SMTP邮件发送Python & Django实践 说明: python 3.6 Django 2.2 阿里云轻应用服务器 注意:轻应用服务器上80 端口和25端口是被占用,465端口被 ...

  3. 阿里云服务器不能发送smtp协议邮件问题

    遇到一个大大的坑... 之前在一个阿里云的WindowsServer可以正常发送,本地开发环境也可以,换到阿里云的centos环境下就出问题了,总是提示 一番查找之后,定位问题为:阿里云自去年之后购买 ...

  4. Springboot 阿里云服务器 发送 邮件问题

    在本地中能够发送邮箱,部署到阿里云却发不了??? 原本的application.properties邮箱配置 # 邮件协议 spring.mail.protocol=smtp # 网易邮箱 smtp ...

  5. 阿里云服务器发送邮箱失败问题

    问题描述: 在本地启动项目并发送邮箱完全木有问题,ok,上云,注册用户,一顿操作猛如虎,what?,邮箱验证码发送失败??,什么玩意?? 原因: 发邮件的默认端口是25端口,而阿里云禁止通过STMP ...

  6. 阿里云服务器不能发邮件的解决方法

    最近把一个项目部署到阿里云服务器上了,项目的其他页面都可以在浏览器上显示出来.需要实现的功能是点击注册按钮是需要通过发送一封邮件给注册的邮箱,客户通过点击邮箱的链接来激活注册的账号.但是在注册页面,用 ...

  7. 阿里云服务器不能发邮件解决方法

    特别注意阿里云的<25端口使用服务协议>:     我/我公司承诺并保证TCP 25端口仅用来连接第三方的SMTP服务器,从第三方的SMTP服务器外发邮件.如发现您使用本机IP直接SMTP ...

  8. 阿里云服务器 通过JavaMail发送邮箱STMP问题( 25端口被禁用 使用SSL协议465端口)

    我们传统使用的比较简单的是 STMP 25端口收发邮件 今天发现刚购买的阿里云服务器不能作为客户端通过STMP 25端口发送邮件 开始在网上有说发现是JDK1.8的原因,然后自己也把JDK1.8换到了 ...

  9. 阿里云服务器 通过JavaMail发送邮箱STMP问题( 25端口被禁用 使用SSL协议465端口

    我们传统使用的比较简单的是 STMP 25端口收发邮件 今天发现刚购买的阿里云服务器不能作为客户端通过STMP 25端口发送邮件 开始在网上有说发现是JDK1.8的原因,然后自己也把JDK1.8换到了 ...

最新文章

  1. mysql和redis的区别
  2. java线程排序_Java中的并发排序
  3. PyQt5 技巧篇-便于文字排版的等宽字体推荐:Source Code Pro的中文为英文两倍宽字体
  4. VTK:可视化之MultipleRenderWindows
  5. R语言基础入门(4)之数据类型与相应运算2
  6. linux下下安装jdk-6u45-linux-x64.bin
  7. 利用burp实现弱密码破解
  8. 中如何调取api_【技巧】不去腾讯公司也能调取微信交易流水清单
  9. 智能实验室-杀马(Defendio) 4.27.0.951
  10. 简述DNS进行域名解析的原理
  11. idea的maven调用本地仓库的jar报错
  12. OpenShift 4 - 锁定被保护的 OpenShift 资源,禁止删除和修改操作
  13. NA-NP-IE系列实验2
  14. dev多行注释_Shell 实现多行注释的几种常用方法
  15. 12.10 Nginx访问日志;12.11 Nginx日志切割;12.12 静态文件不记录日志和过期
  16. ant接口用什么天线_天线接口 一个叫SMA 另一个叫TNC
  17. linux appium 安装教程,Ubuntu 系统安装 Appium 及样例运行教程
  18. 将QLV 格式的视频转换为 mp4 格式
  19. python网络爬虫实战之下载笔趣看小说网小说
  20. YNUOJ-开学大作战之补番真开心(2018/8/29)

热门文章

  1. MacOS中Dock栏的设置和使用技巧,新手必看
  2. Exynos4412 Uboot 编译工具 —— 交叉工具链 arm-linux-gcc 的安装
  3. Eclipse中使用自己的makefile管理工程
  4. Java 结构体之 JavaStruct 使用教程二 JavaStruct 用例分析
  5. React开发(161):onref绑定
  6. 前端学习(3119):react-hello-react的解决类中方法的this
  7. 前端学习(3055):vue+element今日头条管理-反馈
  8. [html] 如何解决微信浏览器视频点击自动全屏的问题?
  9. 前端学习(2870):Vue路由权限『前后端全解析』1
  10. [css] 有哪些标签是不支持伪元素的?