⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 komail_1.2.txt

📁 全功能邮件处理程序
💻 TXT
字号:
// A barebones mail client designed to grow as we need it
// Copyright (c) 1998 Barry D Benowitz
// $Id: komailclient.cpp,v 1.2 1999/01/22 19:52:11 pbrown Exp $

#include <unistd.h>
#include <qmsgbox.h>

#include "komailclient.h"
#include "komailclient.moc"
#include <kconfig.h>
#include <kdated.h>
#include "version.h"

MailMsgString::MailMsgString()
{
    numberOfAddresses=0;
    xMailer = new QString(XMAILER);
    xMailer->append(korgVersion);
    Addressee= new QString("To:   ");
    From = new QString("From: ");

    Subject = new QString("Subject: NOTICE OF MEETING");
    Headers = new QString();
    textString = new QString();	
}

MailMsgString::~MailMsgString()
{
    delete xMailer;
    delete Addressee;
    delete From;
    delete Subject;
    delete Headers;
    delete textString;
}

void MailMsgString::addAddressee(Attendee *newAddressee)
{
    if(numberOfAddresses != 0){
	Addressee->append(COMMA);
    }

    QString addr;
    addr = newAddressee->getEmail().copy();
    if (!newAddressee->getName().isEmpty()) {
      addr.prepend(" <");
      addr.append(">");
      addr.prepend(newAddressee->getName().data());
    }
    Addressee->append(addr.data());
    numberOfAddresses++;
}

void MailMsgString::addFrom(char  * from)
{
    From->append(from);
}

void MailMsgString::buildTextMsg(KDPEvent * selectedEvent)
{
    QString CR;
    QString recurrence[]= {"None","Daily","Weekly","Monthly Same Day","Monthly Same Position","Yearly","Yearly"};
	
    CR.sprintf("\n");
    
    if (selectedEvent->doesFloat())
	textString->sprintf("\nSummary: %s",
			    selectedEvent->getSummary().data());
    else {
	textString->append(CR);
	textString->append("Summary: ");
	textString->append(selectedEvent->getSummary());
	textString->append(CR);
	textString->append("Start Date: ");
	textString->append(selectedEvent->getDtStartDateStr());
	textString->append(CR);
	textString->append("Start Time: ");
	textString->append(selectedEvent->getDtStartTimeStr());
	textString->append(CR);
	if(selectedEvent->doesRecur()){
	    textString->append("Recurs: ");
	    debug("%d",selectedEvent->getRecursFrequency());
	    textString->append(recurrence[selectedEvent->getRecursFrequency()]);
	    textString->append(CR);
	    if(selectedEvent->getRecursDuration() > 0 ){
		textString->append("Repeats ");
		QString tmpStr;
		tmpStr.setNum(selectedEvent->getRecursDuration());
		textString->append(tmpStr);
		textString->append(" times");
		textString->append(CR);
	   
	    }else {
		if(selectedEvent->getRecursDuration() != -1){
		    textString->append("End Date  :");
		    textString->append(selectedEvent->getRecursEndDateStr());
		    textString->append(CR);
		}else {
		    textString->append("Repeats forever");
		    textString->append(CR);
		}
	    }
	}
	textString->append("End Time  : ");
	textString->append(selectedEvent->getDtEndTimeStr());
	textString->append(CR);
	
    } 
}

QString * MailMsgString::getHeaders()
{
    QString CR,date;
    QDateTime theDate(QDate::currentDate(),QTime::currentTime());
    CR.sprintf("\n");
    date.sprintf("Date: ");

    Headers->append(Addressee->data());
    Headers->append(CR);
    Headers->append(From->data());
    Headers->append(CR);
    Headers->append(Subject->data());
    Headers->append(CR);
    Headers->append(date);
    Headers->append(theDate.toString());
    Headers->append(CR);
    Headers->append(xMailer->data());
    Headers->append(CR);
  

    return Headers;
}

KoMailClient::KoMailClient(CalObject *cal)
{   
    calendar = cal;
}

KoMailClient::~KoMailClient()
{
}

void KoMailClient::emailEvent(KDPEvent *selectedEvent,QWidget * parent)
{
#include <stdio.h>
    FILE *sendMail;;
    int numAttendees=0;
    QString sender;
    MailMsgString headers;
    QList<Attendee> Participants;
//
// Generate List of Addressees

    Participants=selectedEvent->getAttendeeList();
    QListIterator<Attendee> it(Participants);
    it.toFirst();
    for(;numAttendees < selectedEvent->attendeeCount();numAttendees++){
	headers.addAddressee(it.current());
	++it;
	
    }
    sender=calendar->getEmail();
    headers.addFrom(sender.data());// Apptmt always from Owner
//    debug("%s",headers.getHeaders()->data());
    headers.buildTextMsg(selectedEvent);
//    debug("%s",headers.getBody());
    sendMail = popen("/usr/lib/sendmail -t","w");
    if( sendMail == NULL ){
	debug("Can't fork sendmail!");
	return;
    }
    ::fprintf(sendMail,"%s%s\n.\n",headers.getHeaders()->data(), 
	    headers.getBody()->data());
    ::pclose(sendMail);
    return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -