安心の国産クラウドメール配信サービス
 
SMTP認証のサンプルコード(PHP、Java、Python)

SMTP認証のサンプルコード(PHP、Java、Python)

フミヨイのSMTPリレーサービスのご利用にあたり、SMTP認証を行う必要があります。
本ページでは、PHP、Java、PythonでSMTP認証を行ってフミヨイSMTPリレーサービスを利用するサンプルコードを紹介します。

PHP

1.PHPMailer ダウンロード

 PHPの標準関数ではメール送信時にSMTP認証を行うことは出来ないため、PHPMailerを使用します。
 PHPMailerがインストールされていない場合は、こちらのリンクよりPHPMailerをダウンロードして下さい。
※緑色の「Code」ボタン → 「Download ZIP」をクリック。

2.サンプルコード

以下にPHPMailerを利用し、メール送信時にSMTP認証を行うサンプルコードを記載します。

<?php
// PHPMailer インポート
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
require 'PHPMailer/src/Exception.php';
 
//エラーメッセージ用日本語言語ファイルを読み込む場合
require 'PHPMailer/language/phpmailer.lang-ja.php';
 
//言語、内部エンコーディングを指定
mb_language("japanese");
mb_internal_encoding("UTF-8");
 
// インスタンス生成
$mail = new PHPMailer(true);
 
//文字コード設定
$mail->CharSet = "iso-2022-jp";
$mail->Encoding = "7bit";
 
// SMTP接続の各種設定
$mail->isSMTP();                            // SMTP を使用
$mail->Host       = '[SMTPリレーホスト名]'; // 接続先サーバを指定(フミヨイSMTPリレーサーバを指定)
$mail->SMTPAuth   = true;                   // SMTP認証を有効
$mail->Username   = 'apikey';               // ユーザ名(apikey 固定)
$mail->Password   = '[SMTP認証パスワード]'; // SMTP認証パスワード
$mail->Port       = 25;                     // 接続先ポートを指定

// メール内容の各種指定
$mail->setFrom('from@example.com', mb_encode_mimeheader('差出人名'));       // 差出人(Fromヘッダ)
$mail->addAddress('to@example.com', mb_encode_mimeheader("受信者名"));      // 宛先
$mail->addCustomHeader('X-SM-ID', '[配信ID]');                              // 拡張ヘッダ(X-SM-ID)
  
$mail->Subject = mb_encode_mimeheader('件名'); //件名
$mail->AltBody = mb_convert_encoding('メール本文',"JIS","UTF-8");           // テキスト形式の本文
 
// 送信
$mail->send();  

?>

Java

1.サンプルコード

以下にjavamail でSMTP認証を行いメール送信をするサンプルコードを記載します。

import java.util.*;

import javax.mail.*;
import javax.mail.internet.*;

public class auth_send {
    private Session session;
    private String charset;
    private String smtpHost;

    public auth_send(String smtpHost, String charset) {

        this.charset = charset;
        Properties props = new Properties();
        //SMTP サーバの設定
        this.smtpHost = smtpHost;
        props.put("mail.smtp.host", smtpHost);
        props.setProperty("mail.smtp.auth", "true");
        this.session = Session.getDefaultInstance(props, null);
    }

    private void sendmail(String userId, String passwd)
            throws MessagingException {

        //各種メール内容
        String from_addr = "from@example.com"; //送信元(Fromヘッダ)
        String to_addr = "to@example.com";     //宛先
        String subject = "件名";                    //件名
        String message = "メール本文";              //本文
        String xsmid = "sendtest123";               //拡張ヘッダ(X-SM-ID)

        MimeMessage msg = new MimeMessage(session);

        //送信先の設定
        msg.setRecipient(Message.RecipientType.TO, new InternetAddress(
                to_addr));

        //送信元の設定
        msg.setFrom(new InternetAddress(from_addr));

        //送信日付の設定
        msg.setSentDate(new Date());

        //Subject の設定
        msg.setSubject(subject, charset);

        //拡張ヘッダ(X-SM-ID)の設定
        msg.setHeader("X-SM-ID", xsmid);

        //本文 の設定
        msg.setText(message, charset);

        //メールの送信
        Transport tp = session.getTransport("smtp");
        tp.connect(smtpHost, userId, passwd);
        tp.sendMessage(msg, new InternetAddress[]{new InternetAddress(
                to_addr)});
    }

    public static void main(String[] args) throws Exception {
        auth_send mail = new auth_send("[SMTPリレーホスト名]", "iso-2022-jp"); // 接続先サーバを指定(フミヨイSMTPリレーサーバを指定)
        mail.sendmail("apikey","[SMTP認証パスワード]");                        // ユーザ名(apikey固定)、SMTP認証パスワード
    }
}

Python

1.サンプルコード

 以下にPythonでSMTP認証を行いメール送信をするサンプルコードを記載します。

from smtplib import SMTP
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formatdate

# メッセージ作成処理
def createMIMEText(from_addr, to_addr, message, subject):
    # MIMETextを作成
    msg = MIMEText(message, "plain", 'utf-8')

    # メール内容設定
    msg["Subject"] = subject 
    msg["From"] = from_addr
    msg["To"] = to_addr
    msg['X-SM-ID'] = xsmid
    msg['Date'] = formatdate()

    return msg

# 送信処理
def send_email(msg):

    # SMTP認証情報
    account = "apikey"
    password = "[SMTP認証パスワード]"

    # 接続先
    host = '[SMTPリレーホスト名]'
    port = 25

    # サーバを指定
    server = SMTP(host, port)

    # ログイン処理
    server.login(account, password)

    # メールを送信
    server.send_message(msg)

    # 切断
    server.quit()

# メールの送り主
from_email = "from@example.com"

# 宛先
to_email = "to@example.com"

# 件名、メール本文、配信ID(X-SM-ID)
subject = "件名"
message = "メール本文"
xsmid = "sendtest123"

# メッセージ作成
mime = createMIMEText(from_email, to_email, message, subject)

# メール送信
send_email(mime)
フミヨイロゴ