整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          javaMail實(shí)現(xiàn)簡(jiǎn)單的發(fā)送QQ郵箱

          javaMail實(shí)現(xiàn)簡(jiǎn)單的發(fā)送QQ郵箱

          mport javax.mail.Session;

          import javax.mail.Transport;

          import javax.mail.internet.InternetAddress;

          import javax.mail.internet.MimeMessage;

          import java.util.Date;

          import java.util.Properties;

          //最近寫的qq郵箱發(fā)送,也遇到一些問題,163的老是被攔截,后來(lái)QQ的成功了。所有分享給大家。

          //這個(gè)只是發(fā)送一些簡(jiǎn)單文字,圖片和附件大家研究一下就知道了。csdn上我也發(fā)表了

          public class MailSend {

          public static String myEmailAccount="XXXXXXXXXXX@qq.com";//自己郵箱的賬戶

          // 發(fā)件人郵箱的 SMTP 服務(wù)器地址, 必須準(zhǔn)確, 不同郵件服務(wù)器地址不同, 一般(只是一般, 絕非絕對(duì))格式為: smtp.xxx.com

          public static String EmaiPHost="smtp.qq.com";

          public static String receiveMailAccount="XXXXXXXXXXXX@qq.com";

          public static void main(String[] args) throws Exception {

          // 1. 創(chuàng)建參數(shù)配置, 用于連接郵件服務(wù)器的參數(shù)配置

          Properties props=new Properties(); // 參數(shù)配置

          props.setProperty("mail.transport.protocol", "smtp"); // 使用的協(xié)議(JavaMail規(guī)范要求)

          props.setProperty("mail.smtp.host", EmaiPHost ); // 發(fā)件人的郵箱的 SMTP 服務(wù)器地址

          props.setProperty("mail.smtp.auth", "true"); // 需要請(qǐng)求認(rèn)證

          //開啟ssl安全驗(yàn)證

          props.setProperty("mail.smtp.port", smtpPort);

          props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

          props.setProperty("mail.smtp.socketFactory.fallback", "false");

          props.setProperty("mail.smtp.socketFactory.port", smtpPort);

          // 2. 根據(jù)配置創(chuàng)建會(huì)話對(duì)象, 用于和郵件服務(wù)器交互

          Session session=Session.getDefaultInstance(props);

          session.setDebug(true); // 設(shè)置為debug模式, 可以查看詳細(xì)的發(fā)送 log

          // 3. 創(chuàng)建一封郵件

          MimeMessage message=createMimeMessage(session, myEmailAccount, receiveMailAccount);

          // 4. 根據(jù) Session 獲取郵件傳輸對(duì)象

          Transport transport=session.getTransport();

          transport.connect(myEmailAccount, "XXXXXXXXXX");//連接,XXXXXXXX填的是qq郵箱的授權(quán)碼,登錄QQ郵箱,然后在設(shè)置里面p0p3/smtp哪一塊可以看到,協(xié)議必須打開。

          //登錄qq郵箱---設(shè)置----賬戶-----然后下面可以看到,然后生成授權(quán)碼。

          // 6. 發(fā)送郵件, 發(fā)到所有的收件地址, message.getAllRecipients() 獲取到的是在創(chuàng)建郵件對(duì)象時(shí)添加的所有收件人, 抄送人, 密送人

          // for(int i=0;i<100;i++){

          transport.sendMessage(message, message.getAllRecipients());//發(fā)送出去,那個(gè)for循環(huán)是我發(fā)給我朋友玩的,他直接收到100條

          // }

          // 7. 關(guān)閉連接

          transport.close();

          }

          /**

          *

          * @param session

          * @param sendMail 發(fā)件人郵箱

          * @param receiveMail 收件人郵箱

          * @return

          * @throws Exception

          */

          public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception {

          // 1. 創(chuàng)建一封郵件

          MimeMessage message=new MimeMessage(session);

          // 2. From: 發(fā)件人

          message.setFrom(new InternetAddress(sendMail, "你的大哥", "UTF-8"));

          // 3. To: 收件人(可以增加多個(gè)收件人、抄送、密送)

          message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "謝", "UTF-8"));

          // 4. Subject: 郵件主題

          message.setSubject("你好", "UTF-8");

          // 5. Content: 郵件正文(可以使用html標(biāo)簽)

          message.setContent("這是一封重要郵件,來(lái)自一根麻辣", "text/html;charset=UTF-8");

          // 6. 設(shè)置發(fā)件時(shí)間

          message.setSentDate(new Date());

          // 7. 保存設(shè)置

          message.saveChanges();

          return message;

          }

          }

          怕會(huì)亂了排版,所有將代碼截圖了,方便大家看看。每天發(fā)表一篇JAVA技術(shù)類文章,希望大家留言讓我知道大家需要什么樣的文章。。

          分享成果,隨喜正能量】人生,有多少計(jì)較,就有多少痛苦。有多少寬容,就有多少歡樂。痛苦與歡樂都是心靈的折射,就像鏡子里面有什么,決定于鏡子面前的事物。心里放不下,自然成了負(fù)擔(dān),負(fù)擔(dān)越多,人生越不快樂。計(jì)較的心如同口袋,寬容的心猶如漏斗。復(fù)雜的心愛計(jì)較,簡(jiǎn)單的心易快樂。

          《VBA信息獲取與處理》教程是我推出第六套教程,目前已經(jīng)是第一版修訂了。這套教程定位于最高級(jí),是學(xué)完初級(jí),中級(jí)后的教程。這部教程給大家講解的內(nèi)容有:跨應(yīng)用程序信息獲得、隨機(jī)信息的利用、電子郵件的發(fā)送、VBA互聯(lián)網(wǎng)數(shù)據(jù)抓取、VBA延時(shí)操作,剪貼板應(yīng)用、Split函數(shù)擴(kuò)展、工作表信息與其他應(yīng)用交互,F(xiàn)SO對(duì)象的利用、工作表及文件夾信息的獲取、圖形信息的獲取以及定制工作表信息函數(shù)等等內(nèi)容。程序文件通過32位和64位兩種OFFICE系統(tǒng)測(cè)試。是非常抽象的,更具研究的價(jià)值。

          教程共兩冊(cè),八十四講。今日的內(nèi)容是專題八“VBA與HTML文檔”的第二節(jié)上半部分:HTML文檔元素

          第二節(jié) HTML文檔的元素分析之一

          大家好,我們這講開始HTML的講解,為了認(rèn)識(shí)這種特殊的語(yǔ)言,我們要先看看這種語(yǔ)言中的各種元素個(gè)代表什么意義。上節(jié)中在講這種語(yǔ)言的特征時(shí)講過,標(biāo)簽是用來(lái)描述網(wǎng)頁(yè)的。瀏覽器讀取HTML文檔,識(shí)別標(biāo)簽,并按標(biāo)簽要求以網(wǎng)頁(yè)進(jìn)行顯示文本。大部分標(biāo)簽都是成隊(duì)出現(xiàn)的。

          起始標(biāo)簽和結(jié)束標(biāo)簽之間的所有文本,都叫做元素。也就是這個(gè)格式就是:

          <起始標(biāo)簽:也叫元素名>元素的內(nèi)容<結(jié)束標(biāo)簽:/+元素名>

          標(biāo)簽是可以擁有屬性的,屬性提供了元素的一些附加信息,起始標(biāo)簽,有時(shí)候格式如下:

          <元素名 屬性名稱=”屬性值”>

          同時(shí),元素是可以擁有元素的,即某個(gè)元素的內(nèi)容有時(shí)候是一個(gè)子元素。

          元素這東西,比較抽象,我們可以把它且當(dāng)作一個(gè)對(duì)象來(lái)理解,例如工作簿對(duì)象,每個(gè)工作簿的名稱都不一樣(屬性),每個(gè)工作簿里面都有工作表(子元素),每個(gè)表都有名稱(屬性),里面填寫的內(nèi)容也不一樣(元素的內(nèi)容)。

          1 HTML文檔構(gòu)成的整體框架結(jié)構(gòu)

          在上一講中我們舉了一個(gè)最為簡(jiǎn)單的實(shí)例來(lái)說明HTML文檔:

          <html>

          <body>

          <h1>學(xué)習(xí)VBA語(yǔ)言</h1>

          <p>為了更好的掌握VBA的各個(gè)知識(shí)點(diǎn),您可以參考我的第一套教程:VBA代碼解決方案</p>

          </body>

          </html>

          我們將上面的格式修正一下,如下面:

          <html>

          <head> <!--注釋:文檔頭部,文檔相關(guān)消息,并不提供文檔內(nèi)容-->

          <title>

          VBA應(yīng)用提高篇

          </title>

          </head>

          <body> <!--注釋:文檔主體-->

          <h1>學(xué)習(xí)VBA語(yǔ)言</h1>

          <p>為了更好的掌握VBA的各個(gè)知識(shí)點(diǎn),您可以先參考我的第一套教程:VBA代碼解決方案</p>

          </body>

          </html>

          將上面的內(nèi)容寫入記事本中保存為.html文件:HTML基礎(chǔ)學(xué)習(xí)-1.html

          然后我們雙擊打開這個(gè)文件,看看瀏覽器的翻譯效果:

          我們?cè)倏纯淳W(wǎng)頁(yè)的源碼:

          從上面的框架代碼,我們可以看出,一般的頁(yè)面,都有html元素,其一般內(nèi)含兩個(gè)元素,一個(gè)是head元素,一個(gè)是body元素。Head元素僅僅說明文檔的相關(guān)消息,并不展示文檔實(shí)體,body元素才是真正展示文檔主體的,所有要在頁(yè)面展示的元素,都要在body內(nèi)進(jìn)行書寫。

          2 HTML文檔常用元素的構(gòu)成

          1)HTML標(biāo)題 <h1> - <h6>

          標(biāo)題(Heading)是通過 <h1> - <h6> 等標(biāo)簽進(jìn)行定義的。<h1> 定義最大的標(biāo)題。<h6> 定義最小的標(biāo)題。瀏覽器會(huì)自動(dòng)地在標(biāo)題的前后添加空行。標(biāo)題很重要,將 HTML heading 標(biāo)簽只用于標(biāo)題。不要僅僅是為了產(chǎn)生粗體或大號(hào)的文本而使用標(biāo)題。因?yàn)橛脩艨梢酝ㄟ^標(biāo)題來(lái)快速瀏覽您的網(wǎng)頁(yè),所以用標(biāo)題來(lái)呈現(xiàn)文檔結(jié)構(gòu)是很重要的。應(yīng)該將 h1 用作主標(biāo)題(最重要的),其后是 h2(次重要的),再其次是 h3,以此類推。在HTML基礎(chǔ)學(xué)習(xí).HTML文件中我們已經(jīng)用到了標(biāo)題的元素

          2)HTML水平線 <hr />

          <hr /> 標(biāo)簽在 HTML 頁(yè)面中創(chuàng)建水平線。可用于分隔內(nèi)容。

          [待續(xù)]

          本節(jié)參考文件:HTML基礎(chǔ)學(xué)習(xí)-1.html;HTML基礎(chǔ)學(xué)習(xí)-2.html

          我20多年的VBA實(shí)踐經(jīng)驗(yàn),全部濃縮在下面的各個(gè)教程中,教程學(xué)習(xí)順序:

          【分享成果,隨喜正能量】人生,一歲有一歲的味道,一站有一站的風(fēng)景,你的年齡應(yīng)該成為你生命的勛章而不是你傷感的理由。 ??

          者 | Mateusz Iwaniuk

          譯者 | 明明如月,責(zé)編 | 夕顏

          出品 | CSDN(ID:CSDNnews)

          文章配套代碼: https://github.com/iwaniukooo11/email-sender

          現(xiàn)在,即使是創(chuàng)建最基本的網(wǎng)站,程序員也必須使用現(xiàn)代的功能和技術(shù)。甚至像為你的朋友創(chuàng)建簡(jiǎn)單的投資組合這樣的基本項(xiàng)目也可能涉及到一些問題,比如從聯(lián)系人表單接收數(shù)據(jù)。有很多方法可以讀取這些數(shù)據(jù)。你可以將表單與數(shù)據(jù)庫(kù)連接起來(lái),然后從數(shù)據(jù)庫(kù)中讀取傳入的消息來(lái)實(shí)現(xiàn)功能,但這樣做會(huì)給不懂技術(shù)的客戶造成困難。

          你為什么不通過發(fā)送電子郵件傳輸信息?

          不使用數(shù)據(jù)庫(kù)就能接收到傳入的消息,絕對(duì)是最佳選擇,也是最方便用戶的選擇。但問題來(lái)了—如何實(shí)現(xiàn)呢?你可能認(rèn)為需要使用某種后端語(yǔ)言。

          實(shí)際上,你不必使用任何如 php 或 python 這種后端語(yǔ)言,你甚至不需要用到 node.js!你需要的就是一個(gè)簡(jiǎn)單的EmailJS 庫(kù)。

          本文將介紹下面兩個(gè)重要功能:

          • 配置 emailjs 帳戶

          • 使用 JS 發(fā)送電子郵件

          請(qǐng)注意,在我的項(xiàng)目中,我使用了 gulp 和 webpack,我在 src 文件夾存放源碼,dist 存放最終發(fā)布版本的代碼。

          我將分 5 個(gè)步驟向你展示如何從頭開始構(gòu)建電子郵件發(fā)送器。

          步驟1-用 HTML 創(chuàng)建表單

          首先需要?jiǎng)?chuàng)建一個(gè) HTML 表單。你不必放置像 required 或 max 這種驗(yàn)證屬性,因?yàn)樯院螅琾reventDefault 函數(shù)將在你的提交事件上運(yùn)行,它會(huì)讓這些屬性的處理失效。

          表單中最重要的是為每個(gè)輸入放置 name 屬性,后面會(huì)用到。

          我的非常簡(jiǎn)單的表單是這樣的:

          src/html/index.html

           <form class="form"> <input name='name' type="text" placeholder="Your name..." class="form__input" /> <input name='topic' type="text" placeholder="Topic..." class="form__input" /> <textarea name='message' type="text" placeholder="Your Message..." class="form__input" ></textarea>

          <input type="submit" value="send" class="form__input form__input--button"> </form>

          步驟2-注冊(cè)成為 email 用戶

          要配置你的電子郵件,你必須注冊(cè)電子郵件服務(wù)。別擔(dān)心—使用這個(gè)網(wǎng)站非常方便和省時(shí)。

          登入后,系統(tǒng)會(huì)詢問你的電子郵件服務(wù),它位于個(gè)人電子郵件服務(wù)區(qū)(personal email service)。在我的例子中,我選擇了 gmail。

          然后,你需要連接你的 gmail 帳戶。這將用來(lái)發(fā)送電子郵件給你客戶。例如,如果你關(guān)聯(lián)了 xyz@gmail.com 賬戶,你后續(xù)發(fā)送的郵件都將從這個(gè)郵箱發(fā)出。所以不要擔(dān)心“ Send email on your behalf” 這個(gè)授權(quán)信息—這正是你需要的!

          連接完 gmail 賬戶后,點(diǎn)擊添加服務(wù)(add service)按鈕。

          步驟3-創(chuàng)建郵件模板

          如果你已經(jīng)成功連接了你的 gmail 賬戶,你現(xiàn)在應(yīng)該在信息中心中。現(xiàn)在需要?jiǎng)?chuàng)建電子郵件模板了。

          切換到電子郵件模板卡,并單擊創(chuàng)建一個(gè)新的模板(create a new template)。界面非常友好,所以創(chuàng)建模板不會(huì)有任何問題。

          你可以選擇模板的名稱和 ID。我稱之為“我的神奇模板(my_amazing_template)”。

          接下來(lái),你必須指定郵件的內(nèi)容。

          模板的變量值來(lái)自 input 中的 `name` 屬性。你已將變量插入`{{{}}}`符號(hào)中。

          不要忘記在“收件人”部分 (右側(cè)) 添加電子郵件地址。你的電子郵件將被發(fā)送到該電子郵件地址上。截圖中的收件人郵箱是我自己的公司郵箱。

          這是我的簡(jiǎn)單模板,它使用來(lái)自 HTML 表單里的 3 個(gè)變量。我還指定了接收電子郵件的主題。

          步驟4-保存 API 密鑰

          這部分沒什么特別的。Emailjs 共享授權(quán) API 密鑰,將在發(fā)送電子郵件時(shí)使用。當(dāng)然,放這些鑰匙最好的地方是`.env` 配置。但是因?yàn)槲沂褂玫氖呛?jiǎn)單的靜態(tài)文件,我不想使用服務(wù)器配置,所以我將它們保存在 apikeys 文件中,然后再將它們導(dǎo)入。

          你的 USER_ID 位于 Account > API Keys 菜單下。

          TEMPLATE_ID 位于模板的標(biāo)題下面。

          這是我基于不存在的 keyssrc / js / apikeys. js 的示例配置.

          src/js/apikeys.js

          export default { USER_ID :'user_DPUd-rest-of-my-id', TEMPLATE_ID:'my_amazing_template'}

          如果需要將源碼發(fā)布到 GITHUB,不要忘記將 APIKEYS 文件添加到 .GITIGNORE文件中

          步驟5-發(fā)送電子郵件

          現(xiàn)在是該項(xiàng)目最后也是最重要的部分的了。現(xiàn)在我們必須使用 javascript 發(fā)送電子郵件。

          首先,你必須下載 emailjs 包。

          npm i emails-com

          然后,轉(zhuǎn)到 js 文件,導(dǎo)入庫(kù)和 apikeys。

          src/js/main.js

          import emailjs from 'emailjs-com'import apiKeys from './apikeys'

          現(xiàn)在是編寫發(fā)送電子郵件功能的時(shí)候了

          src/js/main.js

          const sendEmail=e=> { e.preventDefault

          emailjs .sendForm('gmail', apiKeys.TEMPLATE_ID, e.target, apiKeys.USER_ID) .then( result=> { console.log(result.text) }, error=> { console.log(error.text) } )}

          sendForm 函數(shù)有4個(gè)參數(shù):

          你的電子郵件的 ID,在這里:

          TEMPLATE_ID 來(lái)自 apikey 文件,

          事件對(duì)象來(lái)自你的表單提交

          USER_ID 來(lái)自 apikey 文件,

          最后,查找表單并添加提交事件監(jiān)聽器:

          src/js/main.js

          const form=document.querySelector('.form')form.addEventListener('submit',sendEmail)

          正如我前面提到的,由于 `preventDefault` 函數(shù),屬性驗(yàn)證將無(wú)法工作。你必須使用 JS 自己進(jìn)行驗(yàn)證和清除輸入。

          以上就是全部?jī)?nèi)容,接下來(lái)讓我們測(cè)試一下。

          填寫頁(yè)面上的表單并發(fā)送。

          我收到電子郵件,內(nèi)容正是根據(jù)我們的模板和表單數(shù)據(jù)渲染出來(lái)的。

          通過上圖可以看出,所有的變量的值都填充到了正確的位置上。

          總結(jié)

          通過本文的介紹你會(huì)發(fā)現(xiàn)用 JS 發(fā)送郵件并非難事。

          使用 emailjs,你可以簡(jiǎn)單的方式發(fā)送電子郵件。

          我相信你未來(lái)的用戶會(huì)很高興收到來(lái)自他們網(wǎng)頁(yè)上表單填寫數(shù)據(jù)的t郵件,相信本文對(duì)你有幫助。

          這篇文章的配套代碼在這里: https://github.com/iwaniukooo11/email-sender

          原文鏈接:

          https://dev.to/iwaniukooo11/send-e-mails-directly-from-front-end-with-js-5d7d

          本文為CSDN翻譯文章,轉(zhuǎn)載請(qǐng)注明出處。

          ?我們想研發(fā)一個(gè)機(jī)器學(xué)習(xí)框架,6 個(gè)月后失敗了

          ?生產(chǎn)型機(jī)器學(xué)習(xí)已經(jīng)沒那么困難了?

          ?視頻 | 你不知道的"開源"60年秘史

          ?GitHub標(biāo)星10,000+,Apache項(xiàng)目ShardingSphere的開源之路

          ?阿里技術(shù)專家告訴你,如何畫出優(yōu)秀的架構(gòu)圖?

          ?加拿大API平臺(tái)如何做到30%為中國(guó)明星項(xiàng)目?創(chuàng)業(yè)老兵這樣說……


          主站蜘蛛池模板: 婷婷国产成人精品一区二| 国产一区二区三区手机在线观看 | 末成年女A∨片一区二区| 中文字幕精品亚洲无线码一区应用| 国产精品一区三区| 久久国产香蕉一区精品| 亚洲AV无码一区二区二三区软件| 无码国产精品一区二区免费vr | 日韩免费一区二区三区在线| 激情无码亚洲一区二区三区| 日本香蕉一区二区三区| 国产综合无码一区二区三区| 亚洲一区在线免费观看| 国产成人久久一区二区三区| 国产精华液一区二区区别大吗| 99久久精品日本一区二区免费| 国产成人一区二区三区高清| 国产一区视频在线| 亚洲av成人一区二区三区在线播放 | 麻豆视传媒一区二区三区| 国产在线无码一区二区三区视频 | 男人的天堂精品国产一区| 无码人妻一区二区三区在线视频 | 91精品一区国产高清在线| 亚洲av无码一区二区三区观看 | 精品视频在线观看一区二区三区| 国产精品99无码一区二区| 成人精品一区二区户外勾搭野战| 一区二区免费电影| 国模私拍福利一区二区| 北岛玲在线一区二区| 亚洲一区在线观看视频| 国产免费一区二区三区在线观看| 国产精品99精品一区二区三区| 国产亚洲一区二区手机在线观看 | 成人无号精品一区二区三区| 亚洲色欲一区二区三区在线观看| 少妇一晚三次一区二区三区| 亚洲成AV人片一区二区密柚 | 亚洲一区无码中文字幕| 国产精品一区二区综合|