ارسال ایمیل از داخل برنامه اندروید در اندروید استودیو
- دسته بندی:
- تاریخ انتشار: اردیبهشت ۲۶, ۱۴۰۲
ارسال ایمیل از داخل برنامه اندروید در اندروید استودیو یکی از راه های هست که برنامه نویسان
در داخل برنامه های خود برای بخش های متفاوتی استفاده میکنند
یکی از بخش های رایج مورد استفاده این قابلیت ساخت فرم تماس با ما در برنامه های اندروید میباشد
خیلی از کاربران میتونن از ایمیل شخصی یا ایمیل های مربوط به وب سوریس خودشون در این زمنیه استفاده کنند
اما خوب آموزشی که امروز براتون در کیومرث دِو قرار دادیم آموزش ارسال ایمیل با استفاده از تنظیمات صندوق پستی گوگل هست
چیزی که برای این آموزش نیاز دارید یه ایمیل گوگل یا همون جیمیل هست
بریم سراغ آموزش
ارسال ایمیل از داخل برنامه اندروید در اندروید استودیو
قدم اول : پروژه جدید ایجاد کنید
قدم دوم: فایل build.gradle پروژه خودتون رو باز کنید و کد های زیر رو بهش اضافه کنید
plugins {
id 'com.android.application'
}
android {
namespace 'com.techblax.techblaxemailsender'
compileSdk 33
defaultConfig {
applicationId "com.techblax.techblaxemailsender"
minSdk 21
targetSdk 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions{
exclude 'META-INF/NOTICE.md'
exclude 'META-INF/LICENSE.md'
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.9.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation 'com.sun.mail:android-mail:1.6.6'
implementation 'com.sun.mail:android-activation:1.6.7'
}
قدم چهارم : برروی پکیج برنامه خود راست کلیک کرده و سپس یک کلاس جدید تحت عنوان Appdata درست کنید
package com.techblax.techblaxemailsender.util;
public class Appdata {
// Qmarsdev.com visit our website
public static final String Sender_Email_Address="kiumarskurd@gmail.com"; //enter sender email here
public static final String Sender_Email_Password="tyekjcltkkxnepwb"; // جهت دریافت رمز جیمیل مورد استفاده حتما آموزش ویدیویی را از انتهای این پست مشاهده کنید
//First, activate the two-step verification of your Gmail account
// Then let's go to complete the training
public static final String Reciver_Email_Address="kiumars1997@gmail.com"; //enter reciver email
public static final String Gmail_Host = "smtp.gmail.com";
}
قدم سوم : فایل لایوت خود activity_main.xml را باز کنید و سپس کد های زیر را بهش اضافه کنید
);
قدم پنجم : کلاس MainActivity را باز کرده و کد های زیر رو بهش اضافه کنی
package com.techblax.techblaxemailsender;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.techblax.techblaxemailsender.util.Appdata;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
EditText name_,title_,text_;
Button btn_send;
String n_,t_,tt_;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init_ui();
}
private void init_ui() {
name_ = findViewById(R.id.ed_name);
title_ = findViewById(R.id.ed_title);
text_ = findViewById(R.id.ed_text);
btn_send = findViewById(R.id.btn_send_email);
btn_send.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_send_email:
n_=name_.getText().toString();
t_=title_.getText().toString();
tt_=text_.getText().toString();
send_email(n_,t_,tt_);
break;
default:
}
}
private void send_email(String n_, String t_, String tt_) {
Properties properties = System.getProperties();
properties.put("mail.smtp.host", Appdata.Gmail_Host);
properties.put("mail.smtp,port","465");
properties.put("mail.smtp.ssl.enable","true");
properties.put("mail.smtp.auth","true");
Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(Appdata.Sender_Email_Address,Appdata.Sender_Email_Password);
}
});
MimeMessage message = new MimeMessage(session);
try {
message.addRecipient(Message.RecipientType.TO,new InternetAddress(Appdata.Reciver_Email_Address));
message.setSubject(t_);
message.setText("From: "+n_+"\n"+"Text: "+tt_);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
});
thread.start();
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
ودر اخر برنامه را اجرا کرده
توجه کنید در قسمت وارد کردن رمز ایمیل ارسال کننده رمز فعلی ایمیل خود را وارد نکنید چون برنامه
ایمیل رو ارسال نخواهد کرد
ابتدا تایید دو مرحله ای جیمیل رو که برای ارسال ازآن استفاده میکنید فعال کرده و سپس در بخش تایید دومرحله
بر روی رمز برنامه کلیک کنید از منوی کشویی موجود دیگر رو بزنید و یه اسم دلخواه وارد کنید
بعد از تایید یک رمز 16 رقمی در اختیارتون قرار داده میشه اون رمز رو در اپ قسمت رمز وارد کنید
تا برنامه به درستی کار کنه
امیدوارم این آموزش به دردتون خورده باشه ، موفق باشد
همچنین میتونید ویدیو آموزش کامل ساخت این پروژه رو از کانال ما در یوتیوب ببینید
package com.techblax.techblaxemailsender.util;
public class Appdata {
// Qmarsdev.com visit our website
public static final String Sender_Email_Address="kiumarskurd@gmail.com"; //enter sender email here
public static final String Sender_Email_Password="tyekjcltkkxnepwb"; // جهت دریافت رمز جیمیل مورد استفاده حتما آموزش ویدیویی را از انتهای این پست مشاهده کنید
//First, activate the two-step verification of your Gmail account
// Then let's go to complete the training
public static final String Reciver_Email_Address="kiumars1997@gmail.com"; //enter reciver email
public static final String Gmail_Host = "smtp.gmail.com";
}
قدم سوم : فایل لایوت خود activity_main.xml را باز کنید و سپس کد های زیر را بهش اضافه کنید
);
قدم پنجم : کلاس MainActivity را باز کرده و کد های زیر رو بهش اضافه کنی
package com.techblax.techblaxemailsender;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.techblax.techblaxemailsender.util.Appdata;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
EditText name_,title_,text_;
Button btn_send;
String n_,t_,tt_;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init_ui();
}
private void init_ui() {
name_ = findViewById(R.id.ed_name);
title_ = findViewById(R.id.ed_title);
text_ = findViewById(R.id.ed_text);
btn_send = findViewById(R.id.btn_send_email);
btn_send.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_send_email:
n_=name_.getText().toString();
t_=title_.getText().toString();
tt_=text_.getText().toString();
send_email(n_,t_,tt_);
break;
default:
}
}
private void send_email(String n_, String t_, String tt_) {
Properties properties = System.getProperties();
properties.put("mail.smtp.host", Appdata.Gmail_Host);
properties.put("mail.smtp,port","465");
properties.put("mail.smtp.ssl.enable","true");
properties.put("mail.smtp.auth","true");
Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(Appdata.Sender_Email_Address,Appdata.Sender_Email_Password);
}
});
MimeMessage message = new MimeMessage(session);
try {
message.addRecipient(Message.RecipientType.TO,new InternetAddress(Appdata.Reciver_Email_Address));
message.setSubject(t_);
message.setText("From: "+n_+"\n"+"Text: "+tt_);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
});
thread.start();
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
ودر اخر برنامه را اجرا کرده
توجه کنید در قسمت وارد کردن رمز ایمیل ارسال کننده رمز فعلی ایمیل خود را وارد نکنید چون برنامه
ایمیل رو ارسال نخواهد کرد
ابتدا تایید دو مرحله ای جیمیل رو که برای ارسال ازآن استفاده میکنید فعال کرده و سپس در بخش تایید دومرحله
بر روی رمز برنامه کلیک کنید از منوی کشویی موجود دیگر رو بزنید و یه اسم دلخواه وارد کنید
بعد از تایید یک رمز 16 رقمی در اختیارتون قرار داده میشه اون رمز رو در اپ قسمت رمز وارد کنید
تا برنامه به درستی کار کنه
امیدوارم این آموزش به دردتون خورده باشه ، موفق باشد
همچنین میتونید ویدیو آموزش کامل ساخت این پروژه رو از کانال ما در یوتیوب ببینید